我以为我已经弄清楚但没有骰子......我正在尝试重写域但保留子目录路径:
的 www.olddomain.com/sub/directory/page.php 的
要
的 www.newdomain.com/sub/directory/page.php 的
需要以下两个指令。首先是尝试完成上述任务。第二个是在每个URL之前插入一个隐藏的“index.php”。
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
当然,无论我在olddomain.com上访问什么网址,都会将我带到newdomain.com/index.php。也许它是从前一个站点插入“index.php”...我插入[L]来尝试它停止解析.htaccess文件,但它也不喜欢。任何方向都会非常感激。
答案 0 :(得分:1)
您需要确保删除旧网站上的所有规则(如果该网站位于与新域不同的位置),否则,您需要确保重定向是第一个规则,在RewriteEngine On
行的正下方。
你的规则:
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
是对的。只要它之前没有任何东西,就应该有效。
确保您已清除浏览器的缓存。