2012-05-22 45 views
0

我有以下問題: 我在nginx下使用Django。 由於有些時候我開始在SEO上工作。 因此,現在我需要重定向的網址,如如何重定向urls,如mysite.com/?到mysite.com(no'?')django或nginx?

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; 
    } 

它的URL是像

情況下的偉大工程「site.com/something?」

但是當它是「site.com/something?city=4 & myid = 10?」它重定向到「site.com/something」

所以所有正常參數(「city,myid」)都會丟失。這對我並不好,因爲我需要保存它們。 仍然需要幫助..看來,用nginx做它也不是那麼容易。

+0

您不能挽救最後有查詢字符串*和*另一個'''的情況。在「site.com/something?」處有鏈接是可以理解的,但像「site.com/something?city=4&myid=10?」一般來說,它只是一個博克的鏈接。 –

回答

0

我會使用nginx,你不需要啓動python進程來重定向,並且重定向在nginx中很容易,只需看看相關的問題即可。

+0

我真的試過了,無法讓它工作,因爲我需要它(查看更新後的文章) – v100ev

0

我真的沒有得到你的問題。你只想重定向包含或以'?'結尾的網址。如果你想重定向所有的URL,只需使用:

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

注意'?'在重寫目標的末尾停止將GET參數添加到重定向請求中。請參閱http://wiki.nginx.org/HttpRewriteModule#rewrite

相關問題