如何重定向mysite.com/等网址?到mysite.com(没有'?')django或者nginx?

时间:2012-05-22 10:45:29

标签: django redirect nginx

我遇到了以下问题: 我在nginx下使用Django。 从一段时间以来我开始研究SEO。 所以现在我需要重定向像

这样的网址

site.com/?到site.com /

site.com/some_page/?到site.com/some_page /

所以,问题是'?'..我可以重定向,如果有'?'之后的东西但如果它只是'?' - 我不知道该怎么做..

我尝试读取元素'REQUEST_URI',但它是空的,GET是空的,但这是正常的。 可能是我可以在nginx中对它进行一些破解,但我不确定这是正确的做法..

是否有任何可以提供帮助的提示? 提前谢谢..对不起我的英语)

UPD:

在nginx中尝试了以下内容:

    if ($request_uri ~ "[?]$") {
        rewrite ^/(.*)$ http://$host/$1? permanent;
    }

如果网址类似

,则效果很好

“site.com/something?”

但是当它是“site.com/something?city=4&myid=10?”时它重定向到“site.com/something”

所以所有正常参数(“city,myid”)都会丢失。这对我不利,因为我需要保存它们。 仍然需要帮助..似乎对我来说使用nginx也不是那么容易。

2 个答案:

答案 0 :(得分:0)

我会使用nginx,你不需要启动python进程来进行重定向,并且在nginx中重定向很容易,只需查看相关问题。

答案 1 :(得分:0)

我没有真正得到你的问题。您是否只想重定向包含或以“?”结尾的网址。如果您想重定向所有网址,只需使用:

rewrite ^/(.*)$ http://$host/$1 permanent;

注意'?'在重写目标结束时,停止将GET参数添加到重定向请求中。见http://wiki.nginx.org/HttpRewriteModule#rewrite