nginx 中多次重写

nginx 中多次重写

我有:

  1. nginx 服务器
  2. 基于 joomla 的网站
  3. 在服务器块中像这样重写

    location / {
        # Support Clean (aka Search Engine Friendly) URLs
        try_files $uri $uri/ /index.php?$args;
    }
    

这会产生“类似 sef”的链接 /abb/aaa/ccc

我现在想要的是制作短网址的地图(那些重写链接)

像这样:

map @rewrite_url $rewrited_url {
    /a    /abb/aaa/ccc
    /b    /aaa/adddd/aaa
}

并应用此地图

编辑:

在 location/try_files 中:

/index.php?q=$request_uri; 

制作 joomla url:

/index.php?bla=1&blab=2  ===> like "/aaa/aaa/aaa"  - > without  ?,& and =  

并且我想将此友好链接制作成包含地图的简短形式以供使用:

/a instead of /bla/bla/comelink
/b instead of /bla/aaa/someotherlink

示例(别名):

/changelog  /some/adres/to change-log/on/joomla/page

答案1

好吧,我设法找出了它不起作用的原因,这是因为重写地图基址的拼写错误

我的问题的解决方案是:

#redirect.map file content 
/target /destination/link;

#nginx http + server block 
map $request_uri $new_uri {
    include snippets/redirect.map;
}

server {

    location $reguest_uri  {
        if ($new_uri) {
           return 301 $new_uri;
        } 
    }

}

相关内容