我想将旧域上的所有请求重定向到新域的主页(根站点)。我认为它可以与以下内容一起使用:
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.com/ [R=301]
(see:.htaccess redirect all pages to new domain),但由于一个奇怪的原因,例如,当我尝试访问URL www.example.com时www.olddomain.com/faq/pdf.php?cat=7&id=93&artlang=de我被重定向到www.newdomain.com/?cat=7&id=93&artlang=de。可能是什么问题?
在过去我遇到了一些问题,因为这个域是在一个子目录(作为addon-domain)我的新的main-domain,但在.htaccess的main-domain我有一个:
RewriteCond %{HTTP_HOST} ^([^.]+\.)*olddomain\.com
RewriteRule .* - [L]
它可以消除这种错误。还有别的办法吗?我已经试了好几个小时了。
编辑:当我发现问题出在查询字符串上时,我在谷歌上搜索了一下。
4条答案
按热度按时间643ylb081#
如果要重定向到新域而不使用路径和查询字符串,则必须追加空查询字符串
niknxzdl2#
mod_rewrite
将查询字符串附加到重写的URL *(如果未指定查询字符串 *)。添加一个空查询字符串以避免此问题(添加一个?
就足够了):另请阅读有关QSA标志的信息。
mf98qq943#
更新日期:
更新作为一个例子,而不是作为一个答案。
c0vxltue4#
使用rewrite从旧域重定向到包含完整路径和查询字符串的新域:
选项+遵循符号链接重写引擎重写规则^(.*)http://www.newdomain.com %{请求URI} [R=302,NC]