注意:我会说英语
我遇到mod_rewrite
的问题。
我想替换我的网站名称,我想要这个网址
http://www.oldsite.com/index.php?v=contact
重写为网址
http://www.newsite.com/page/contact with 301 rewrite.
我这样做:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{QUERY_STRING} v=contact
RewriteRule ^index.php http://www.newsite.net/page/contact [R=301,L]
但是我收到了查询http://www.newsite.net/page/contact?v=contact
。
我不想要?v=contact
,我想要http://www.newsite.net/page/contact
。
答案 0 :(得分:2)
注意:查询字符串
模式将不与查询字符串匹配。相反,您必须使用带有%{QUERY_STRING}
变量的RewriteCond。但是,您可以在替换字符串中创建包含查询字符串部分的URL。只需在替换字符串中使用问号,即表示应将以下文本重新注入查询字符串。 如果要删除现有查询字符串,请仅使用问号结束替换字符串。要将新查询字符串与旧查询字符串组合,请使用[QSA]
标记。
所以你应该有:
RewriteRule ^index.php http://www.newsite.net/page/contact? [R=301,L]
答案 1 :(得分:0)
根据this article,您应该能够写下:
RewriteRule ^index.php http://www.newsite.net/page/contact$1? [R=301,L]