modrewrite - 从子目录重写到新域

时间:2011-08-17 16:40:53

标签: .htaccess mod-rewrite

该死的你modrewrite

我的网站托管在以下网址:

http://mydomain/mocks/thesite/

现在我想将其移至新域名

http://thesitesdomain.com/

我的htaccess看起来像这样:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.thesitesdomain\.com
RewriteRule (.*) http://www.thesitesdomain.com/$1 [R=301,L]

现在,只要/mocks/thesite/之后出现问题,这样就可以了。例如:http://mydomain/mocks/thesite/index.html重定向到http://www.thesitesdomain.com/index.php

但问题是:

http://mydomain/mocks/thesite/重定向到http://thesitesdomain.com/mocks/thesite/。知道为什么吗?如何阻止这个?

.htaccess文件位于/mocks/thesite/的根目录中(如果有帮助的话)

谢谢

1 个答案:

答案 0 :(得分:1)

你应该尝试使用变量REQUEST_URI,你可能会有更多的成功。它应该是请求uri和文件名。到

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.thesitesdomain\.com
RewriteRule .* http://www.thesitesdomain.com/%{REQUEST_URI} [R=301,L]

我不记得了,但也要用查询字符串重定向(获取变量)我认为你需要像这样添加它。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.thesitesdomain\.com
RewriteRule .* http://www.thesitesdomain.com/%{REQUEST_URI}?%{QUERY_STRING} [R=301,L]

自从真正进行域名重定向以来已经有一段时间......

BTW这是对htacces配置的一个很好的阅读: http://corz.org/serv/tricks/htaccess2.php