我正在使用IPB论坛。我设法通过修改nginx server conf来使用友好的urls。然而,我需要将我的旧论坛的url重定向到一个重定向的php文件,以获得一个主题(或论坛,成员等)的当前url。例如:如果url类似于/forum/index.php?board=23,我将重定向到redirector.php。
这是我当前的配置,可以在IPB上使用友好的URL
location /forum {
try_files $uri $uri/ /forum/index.php;
rewrite ^ /forum/index.php? last;
}当我像下面这样在这个位置块中插入一个if语句时,我无法检索到查询参数"board“。
location /forum {
if ($arg_board != "") {
rewrite ^ /redirector.php?q=$arg_board break;
}
try_files $uri $uri/ /forum/index.php;
rewrite ^ /forum/index.php? last;
}这里缺少什么?
发布于 2012-06-26 18:03:00
您的问题与break而不是last的使用有关。从文档中:
http://wiki.nginx.org/HttpRewriteModule#rewrite
last -完成当前重写指令的处理,并重新启动进程(包括重写),从所有可用位置搜索URI的匹配项。
中断-完成当前重写指令的处理,非重写处理仅在当前位置块内继续。
因为您没有在/forum位置块中为重写定义处理程序,所以if(..) { rewrite }不会执行您想要的操作。将该断点设为最后一个,以便重写可以触发适当的位置块。
https://stackoverflow.com/questions/10692681
复制相似问题