2013-04-07 44 views
1

我試圖將舊的谷歌緩存鏈接重定向到我們的新網站。所以它在我的正則表達式編輯器中工作,但不在我的htacess文件中?regexp + modrewrite只是工作

第一條規則似乎有效,但第二條規則不起作用。我已經在規則上面留下了一些例子。

# Legacy site redirects 
# For homes home and search: 
# www.site.ie/results_lost_found.html?search_type=lost_found&ad_type=&location_id=&x=31&y=12 
RewriteRule ^results_lost_found|results_home(.+)search_type=lost_found(.*)$ lost_found [NC,R=301,L] 
# www.site.ie/results_home.html?search_type=for_home&pet_type_id=&location_id=&x=14&y=10 
RewriteRule ^results_lost_found|results_home(.*)search_type=for_home(.*)$ for_homes [NC,R=301,L] 

回答

1

您的規則都不起作用,因爲RewriteRule只匹配沒有查詢字符串的URI。在mod_rewrite的,你會做這樣的事情:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^search_type=lost_found&ad_type=&location_id=&x=31&y=12$ [NC] 
RewriteRule ^(results_lost_found|results_home)\.html$ /lost_found? [NC,R=301,L] 

注意使用查詢字符串變量%{QUERY_STRING},以配合您的查詢字符串。

+0

是的。這對我有效。謝謝 – 2013-04-08 11:04:55