正则表达式+ mod_rewrite正常工作

时间:2013-04-07 13:00:43

标签: regex mod-rewrite seo

我正在尝试将旧的Google缓存链接重定向到我们的新网站。所以它适用于我的正则表达式编辑器,但不适用于我的htacess文件?

第一条规则似乎有效但第二条则没有。我在规则之上留下了一些例子。

# 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 个答案:

答案 0 :(得分: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}来匹配您的查询字符串。