emr*_*cer 6 forum redirect rewrite nginx ipb
我正在使用 IPB 论坛。我设法使用友好的 url 和 nginx 服务器配置修改。但是,我需要将旧论坛的 URL 重定向到重定向器 php 文件以获取主题(或论坛、成员等)的当前 URL。例如:如果 url 是 like /forum/index.php?board=23
,我将重定向到 redirector.php 。
这是我当前能够在 IPB 上使用友好 URL 的配置
location /forum {
try_files $uri $uri/ /forum/index.php;
rewrite ^ /forum/index.php? last;
}
Run Code Online (Sandbox Code Playgroud)
当我在这个位置块中插入一个 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;
}
Run Code Online (Sandbox Code Playgroud)
这里缺少什么?
您的问题与使用 break 而不是 last 相关。从文档:
http://wiki.nginx.org/HttpRewriteModule#rewrite
last - 完成当前重写指令的处理,并通过从所有可用位置搜索 URI 上的匹配项来重新启动该过程(包括重写)。
break - 完成当前重写指令的处理,非重写处理仅在当前位置块内继续。
由于您没有为 /forum 位置块中的 /redirector 定义处理程序,因此您的 if(..) { rewrite } 不会执行您想要的操作。将中断放在最后,以便重写可以触发适当的位置块。
归档时间: |
|
查看次数: |
14751 次 |
最近记录: |