2010-11-13 110 views
0

注意:我小說英語如何刪除查詢字符串?

我有一個問題mod_rewrite

我想取代我的網站的名稱,我想這個URL

http://www.oldsite.com/index.php?v=contact 

重寫URL

http://www.newsite.com/page/contact with 301 rewrite. 

我做這樣說:

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{QUERY_STRING} v=contact 
RewriteRule ^index.php http://www.newsite.net/page/contact [R=301,L] 

但我得到查詢http://www.newsite.net/page/contact?v=contact。 我不想要?v=contact,我想要http://www.newsite.net/page/contact

+0

刷起來一點,我希望你不介意:)(但我不是以英語爲母語其一)。 – 2010-11-13 20:28:43

回答

2

documentation

注:查詢字符串
格局將不會對查詢字符串相匹配。相反,您必須使用帶有%{QUERY_STRING}變量的RewriteCond。但是,您可以在替換字符串中創建URL,其中包含查詢字符串部分。只需在替換字符串中使用問號,表示應將以下文本重新注入查詢字符串中。 當您想要刪除現有的查詢字符串時,只需使用問號來結束替換字符串。要將新的查詢字符串與舊的查詢字符串合併,請使用[QSA]標誌。

所以你應該有:

RewriteRule ^index.php http://www.newsite.net/page/contact? [R=301,L] 
+0

謝謝你felix – alioygur 2010-11-15 11:17:55

0

this article,你應該能夠編寫:

RewriteRule ^index.php http://www.newsite.net/page/contact$1? [R=301,L] 
+2

你知道'$ 1'的含義嗎?它是對模式的第一個捕獲組的反向引用。但由於沒有捕獲組,這沒有多大意義。 – 2010-11-13 20:33:48