我遇到了以下问题: 我在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也不是那么容易。
答案 0 :(得分:0)
我会使用nginx,你不需要启动python进程来进行重定向,并且在nginx中重定向很容易,只需查看相关问题。
答案 1 :(得分:0)
我没有真正得到你的问题。您是否只想重定向包含或以“?”结尾的网址。如果您想重定向所有网址,只需使用:
rewrite ^/(.*)$ http://$host/$1 permanent;
注意'?'在重写目标结束时,停止将GET参数添加到重定向请求中。见http://wiki.nginx.org/HttpRewriteModule#rewrite