特别是RewriteCond%{QUERY_STRING}

时间:2013-07-29 09:06:09

标签: regex redirect mod-rewrite query-string

您好我有一个特殊的问题:我的任务是将WP页面(page_id = 2)重定向到同一域上的页面(about),但是当我使用字符串重定向时:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^page_id=2$
RewriteRule ^(.*)$ http://example.com/about? [R=301,L] 

...它重定向网站上的所有pages page_id=2,如

en/?page_id=2 , ok/?page_id=2 , en/ok/?page_id=2

有没有办法专门重定向“根”页面page_id=2并将其他页面保留原样?

如果将来我想将某些子页面重定向到en/ok/?page_id=2en/ok/about怎么办?

对不起我的英语不好 - 如果我能提供额外的说明,请随时提出。

1 个答案:

答案 0 :(得分:3)

您需要根据请求URI添加重写条件:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^page_id=2$
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://example.com/about? [R=301,L]

将来,当您想要附加到所有页面时,您可以使用:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^page_id=2$
RewriteRule ^(.*)$ http://example.com/$1/about? [R=301,L]