我甚至不会假装完全理解 htaccess 重写条件的工作原理。我已经研究这个问题一段时间了,一直在寻找。
我有一个旧的 Wordpress 网站www.old-site.com
和一个新网站www.site.com
。Wordpress 使用查询字符串page_id=#
重定向到页面。
在旧网站上,page_id=2
转到特定页面,但在新网站上,转到主页。
我需要old-site/?page_id=2
去site.com/our-company
这是我正在尝试的
RewriteCond %{HTTP_HOST} ^(www\.)?old-site.com$ [NC]
RewriteCond %{QUERY_STRING} ^page_id=2$
RewriteRule ^(.*)$ http://www.site.com/our-company/ [R=301,L]
如果我删除查询字符串的重写条件,它会将所有来自 old-site.com 的流量重定向到新网站上的公司页面。我哪里做错了?
我有大约 15 个重定向需要通过这种方式进行。
答案1
仅供参考,我回答了自己的问题
RewriteCond %{HTTP_HOST} ^(www\.)?old-site.com$ [NC]
RewriteCond %{QUERY_STRING} ^page_id=2$
RewriteRule ^(.*)$ http://www.site.com/our-company/? [R=301,L]
如果没有?
新的 URL 之后,它会将查询字符串附加到其末尾,并?
在那里结束该行
我会研究一下这个重写地图,谢谢