0

我遇到了以下问题:我在 nginx 下使用 Django。一段时间以来,我开始从事 SEO 工作。所以现在我需要重定向网址,例如

网站.com/? 到 site.com/

或者

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

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

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

有什么提示可以提供帮助吗?提前谢谢..对不起我的英语)

升级版:

在nginx中尝试了以下事情:

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

如果网址像

“site.com/什么东西?”

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

所以所有正常参数(“city,myid”)都丢失了。这对我不利,因为我需要拯救他们。仍然需要帮助.. 看来我用 nginx 也不是那么容易做到的。

4

2 回答 2

0

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

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

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

于 2012-05-22T14:02:52.337 回答
0

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

于 2012-05-22T11:01:14.470 回答