2010-06-14 141 views
1

我有幾個URL要重定向到同一個地方,但是這些都是動態URL。301重定向,以及正確的正則表達式

的結構是這樣的:

http://www.mysite.com/declaration/list?[query_string] 

我覺得出現這種情況是使用一些正則表達式在我的.htaccess文件重定向這些鏈接的網站主頁將是理想的。

我想知道是否有人可以幫助我與這種情況下的正則表達式。到目前爲止,我有這個,但它不工作:

RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^/declaration/list$ http://www.mysite.com/$ [R=301,L] 

我的正則表達式是弱,至少可以說,這是我想,和我努力學習。

在此先感謝。 Tom

回答

3

由於您在.htaccess文件中使用mod_rewrite,因此需要從模式中刪除上下文路徑前綴。所以,試試這個:

RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^declaration/list$ http://www.example.com/ [R=301,L] 

而且,由於.*將匹配任何字符串,你RewriteCond指令沒有任何額外的使用:

RewriteRule ^declaration/list$ http://www.example.com/ [R=301,L] 

如果你不希望查詢被自動添加到新的URL,在你的替換中指定一個空查詢:

RewriteRule ^declaration/list$ http://www.example.com/? [R=301,L] 
+0

這似乎不起作用。值得一提的是,這是一個WordPress站點,所以也包含一些wordpress .htaccess配置。 感謝您的回覆。 – Tisch 2010-06-14 13:14:23

+0

@Tisch:將你的規則放在Wordpress的規則之上。 – Gumbo 2010-06-14 13:21:43

+0

你男人的男人。 :d – Tisch 2010-06-14 13:30:08