首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果nginx上存在查询参数,则重定向

如果nginx上存在查询参数,则重定向
EN

Stack Overflow用户
提问于 2012-05-22 05:11:59
回答 1查看 14.9K关注 0票数 6

我正在使用IPB论坛。我设法通过修改nginx server conf来使用友好的urls。然而,我需要将我的旧论坛的url重定向到一个重定向的php文件,以获得一个主题(或论坛,成员等)的当前url。例如:如果url类似于/forum/index.php?board=23,我将重定向到redirector.php。

这是我当前的配置,可以在IPB上使用友好的URL

代码语言:javascript
复制
    location /forum {
        try_files $uri $uri/ /forum/index.php;
        rewrite ^ /forum/index.php? last;
    }

当我像下面这样在这个位置块中插入一个if语句时,我无法检索到查询参数"board“。

代码语言:javascript
复制
location /forum {
        if ($arg_board != "") {
            rewrite ^ /redirector.php?q=$arg_board break;
        }
        try_files $uri $uri/ /forum/index.php;
        rewrite ^ /forum/index.php? last;
    }

这里缺少什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-26 18:03:00

您的问题与break而不是last的使用有关。从文档中:

http://wiki.nginx.org/HttpRewriteModule#rewrite

last -完成当前重写指令的处理,并重新启动进程(包括重写),从所有可用位置搜索URI的匹配项。

中断-完成当前重写指令的处理,非重写处理仅在当前位置块内继续。

因为您没有在/forum位置块中为重写定义处理程序,所以if(..) { rewrite }不会执行您想要的操作。将该断点设为最后一个,以便重写可以触发适当的位置块。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10692681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档