htaccess正在重写整个URL并且不使用子目录

时间:2014-01-06 21:29:07

标签: regex .htaccess url-rewriting

我以为我已经弄清楚但没有骰子......我正在尝试重写域但保留子目录路径:

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文件,但它也不喜欢。任何方向都会非常感激。

1 个答案:

答案 0 :(得分:1)

您需要确保删除旧网站上的所有规则(如果该网站位于与新域不同的位置),否则,您需要确保重定向是第一个规则,在RewriteEngine On行的正下方。

你的规则:

RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

是对的。只要它之前没有任何东西,就应该有效。

确保您已清除浏览器的缓存。