我想将旧域上的所有请求重定向到我的新域的主页(根网站)。我认为它适用于:
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.com/ [R=301]
(参见:.htaccess redirect all pages to new domain)但由于一个奇怪的原因,当我尝试访问网址www.olddomain.com/faq/pdf.php?cat=7&id=93&artlang=de我被重定向到www.newdomain.com/?cat=7&id=93&artlang=de。可能是什么问题?
过去我遇到了一些问题,因为这个域位于我的新主域的子目录(作为addon-domain),但是在主域的.htaccess中我有一个:
RewriteCond %{HTTP_HOST} ^([^.]+\.)*olddomain\.com
RewriteRule .* - [L]
禁用此类错误。还有其他想法吗?我现在正试着这几个小时。
编辑:当我得到问题是查询字符串时,我用google搜索。答案 0 :(得分:3)
如果要重定向到没有路径和查询字符串的新域,则必须附加空查询字符串
RewriteEngine On
RewriteRule .* http://newdomain.com/? [R=301,L]
答案 1 :(得分:1)
更新:
RewriteEngine On
RewriteCond %{HTTP_HOST} (?:www\.)?oldomain\.com [NC]
RewriteRule ^(.*)$ http://newdomain.com/? [R=301,L]
作为示例更新,而非作为答案。
答案 2 :(得分:1)
mod_rewrite
会将查询字符串附加到重写的URL 。添加空查询字符串以避免此问题(添加?
就足够了):
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.com/? [R=301,L]
另请阅读QSA标志。