我在.htaccess上有这个:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ http://www.houstonhouseandhome.net/$1 [R=301,L]
</IfModule>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.houseandhomeonline\.com$ [NC]
RewriteRule ^(.*)$ http://www.houstonhouseandhome.net/ [R=301,L]
主页转到新域,但旧域的子页面不会转到新域的索引。他们转到新域并查找同一页面,是否有一种方法可以将旧域页面的请求转到新的域索引? 谢谢,
答案 0 :(得分:0)
出于某种原因,你有两套规则。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ http://www.houstonhouseandhome.net/$1 [R=301,L]
</IfModule>
然后
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.houseandhomeonline\.com$ [NC]
RewriteRule ^(.*)$ http://www.houstonhouseandhome.net/ [R=301,L]
你只需要第一套。 [L]
标志告诉apache如果匹配则停止处理更多规则。因为它会匹配所有内容,所以第二套规则永远不会生效。
要停止尝试在新域上查找相对页面的所有内容,只需从域末尾删除$1
即可。所以你的htaccess文件看起来像这样:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ http://www.houstonhouseandhome.net/ [R=301,L]
</IfModule>
注意强>
由于您正在使用301重定向,因此请确保您的浏览器在重新测试之前已清除其缓存/历史记录。浏览器不会请求它认为会回复301的网址。