我正在尝试从子域到主域设置301重定向,但是当旧网址有查询字符串时,我遇到了问题。
新网站正在运行PHP作为一个FastCGI进程。我尝试使用此处列出的解决方案:https://expressionengine.stackexchange.com/questions/5188/301-redirects-appending-query-string 它适用于大多数网址,但不适用于旧网址有查询字符串的情况。
例如,
RewriteRule ^old-blog/title/?$ http://www.example.com/new-blog/title/ [L,R=301]
可以将old.example.com/old-blog/title重定向到www.example.com/new-blog/title,但我是 包含查询字符串的页面有问题。我试过用这个:
RewriteRule ^Default\.aspx?/?$ http://www.example.com/new-blog/ [L,R=301]
但是像old.example.com/default.aspx?title这样的网址会重定向到www.example.com/new-blog/?title,而不仅仅是www.example.com/new-blog /
我可以阻止查询字符串被附加到新网址吗?
还有一种方法可以对使用上述第一种方法尚未重定向的每个链接进行全面重定向到www.example.com/new-blog/吗?
不确定是否重要但新网站正在运行ExpressionEngine并使用htaccess从网址中删除index.php,但上面的htaccess规则位于旧的子域名中。