.htaccess 301重定向,不包括子页面

时间:2012-06-13 19:46:28

标签: .htaccess mod-rewrite

我的规则如下:

RewriteRule ^page-parent.*$ http://www.domain.com/new-page/?%{QUERY_STRING} [R=301,L]

我的问题是有一个页面/页面 - 父/感谢我不想重定向。

我也传递了查询字符串,以便任何?gclid = string都可以使用。

我不能为我的生活弄清楚如何排除单个子页面或所有子页面,这也会起作用。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果请求的页面是您要排除的页面,则可以使用RewriteCond进行检查。

RewriteCond %{REQUEST_URI} !^/page-parent/thanks
RewriteRule ^page-parent.*$ http://www.domain.com/new-page/ [R=301,L,QSA]

请确保在重试时清理浏览器缓存,因为301-redirects已缓存。

注意:您无需手动附加查询字符串。

答案 1 :(得分:0)

您可以使用mod_rewrite创建条件:

RewriteCond %{REQUEST_URI} !^/page-parent/thanks
RewriteRule ^page-parent.*$ http://www.domain.com/new-page/ [R=301,L]

请注意,您可以忽略目标中的?%{QUERY_STRING},因为默认情况下会将查询字符串附加到目标,除非您通过添加了新的参数。