2012-09-26 150 views
1

我想不看的查詢字符串重定向重定向,和我的重定向導致沒有必要追加查詢字符串一樣,所以我在重寫規則的末尾添加?的.htaccess與忽略查詢字符串

我嘗試下面的語法,但結果只是接近它。

RewriteCond %{QUERY_STRING} .* [NC] 
RewriteRule ^exd\.asp$ http://www.example.com/index.php?r=p/consumer? [R=301,L] 

而且,我試圖逃離第一?,我需要它,但仍得到相同的結果。

RewriteRule ^exd\.asp$ http://www.example.com/index.php\?r=p/consumer? [R=301,L] 

結果:

http://www.example.com/index.php?r=p/consumer%3f 

我想要得到的%3f的車程。

謝謝!

回答

3

你不需要在最後一個?追加,如果你已經在你的目標上查詢字符串。只是這樣做:

RewriteCond %{QUERY_STRING} .* [NC] 
RewriteRule ^exd\.asp$ http://www.example.com/index.php?r=p/consumer [R=301,L] 

默認情況下,查詢字符串得到追加,像這樣:

RewriteRule ^foo$ /bar [L] 

您要求/foo?blah,你會得到/bar?blah

但是,如果你在你的目標有? ,查詢字符串將不會追加除非你有QSA,所以:

RewriteRule ^foo1$ /bar? [L] 
RewriteRule ^foo2$ /bar?q=2 [L] 

您要求/foo1?blah,你得到/bar,你要求/foo2?blah,你得到/bar?q=2。如果在重寫標誌中包含QSA,則&blah會被追加到最後。

+0

喜林喬恩,我真的試圖不把?最後,我仍然得到了http://www.example.com/index.php?r=p/consumer%3f的結果,它在RewriteCond中是否有錯? – Shiro

+0

@Shiro除非有另一個規則,否則您的瀏覽器緩存需要清除,否則'%3f'不會在最後卡住。 –

+0

是的,你是對的,它是緩存....謝謝! – Shiro