使用{QUERY_STRING}重写规则

时间:2014-12-18 11:08:19

标签: .htaccess mod-rewrite

我需要将旧页面重定向到具有相同webdite的新页面。问题是旧网址有{QUERY_STRING}。

http://hostelcomfort.com.ua/?page_id=12
http://hostelcomfort.com.ua/o-gostinitse/

到目前为止,我能想到的最好的是

RewriteCond %{QUERY_STRING} ^page_id=(.*)$
RewriteRule ^/?$ /o-gostinitse/ [R=301,L]

然而,它一直在末尾添加查询字符串/ o-gostinitse /?page_id = 12。

如何编辑第二行?

1 个答案:

答案 0 :(得分:2)

您需要使用:

RewriteCond %{QUERY_STRING} ^page_id=12$
RewriteRule ^/?$ /o-gostinitse/? [R=301,L]
目标网址中的

?将丢弃任何现有的查询字符串。

PS:从Apache 2.4开始,您还可以使用QSD(查询字符串放弃)标记:

RewriteCond %{QUERY_STRING} ^page_id=12$
RewriteRule ^/?$ /o-gostinitse/ [R=301,L,QSD]