2012-02-21 107 views
0

我的網址是http://www.example.com/eg1?redirect=xyz,這應該是http://www.example.com/eg1的.htaccess - 從URL中移除查詢字符串(無重定向)

此寫入的重寫規則如下:

RewriteCond %{Query_STRING} ^redirect=xyz$ 
RewriteRule ^(.*)$ /examples/$1? [L] 

重定向工作正常,但查詢字符串保持追加。當我把[R]標記在末尾的問號(?)很好,並刪除查詢字符串,但[L]標誌其不起作用。而在我的情況下,我沒有重定向,只是將它傳遞到另一個包含內容的目錄。

回答

2

規則很細:

RewriteCond %{Query_STRING} ^redirect=xyz$ 
RewriteRule ^(.*)$ /examples/$1? [L] 

如果你希望它在地址欄反映您必須指定一個外部重定向。即RTemporary RedirectR=302)或Permanent RedirectR=301)。隨着L。默認情況下,R會執行臨時重定向。

RewriteRule ^(.*)$ /examples/$1? [R,L] 

從評論:

添加L與flsg R一起。

RewriteRule ^(.*)$ $1? [R,L] 
+0

我不希望中間的URL出現在地址欄上。你用過[C]還是[L]旗?我做的是我試圖暫時重定向到這樣的網址'RewriteCond%{Query_STRING}^redirect = xyz $
RewriteRule ^(。*)$ $ 1? [R]
RewriteRule ^(。*)$/examples/$ 1? [L]'這可行,但問題是最後一條規則總是被執行......所以我正在考慮一起執行這兩條規則,可能是[C]或[N]標誌可以提供幫助。但他們沒有按預期工作。 – Karol 2012-02-21 13:15:37

+0

@Karol檢查更新 – ThinkingMonkey 2012-02-21 13:31:52

+1

這對我也有幫助! – Hexodus 2014-02-11 19:35:05

相關問題