我使用一个网络服务器托管两个不同的网站,每个网站都有自己的域,并位于它自己的服务器子目录中。这两个域指向我的服务器的根目录。
这是我的文件结构:mod_rewrite:隐藏PHP重定向后的子目录
根/
域1/
域2/
在我的根目录下我使用一个小PHP脚本来确定哪个网址是进入并转发到相应的子目录。
if (($_SERVER['SERVER_NAME'] == "www.domain1.com" || $_SERVER['SERVER_NAME'] == "domain1.com")) {
Header("HTTP/1.1 301 Moved Permanently");
header("location: http://www.domain1.com/domain1");
}
else if (($_SERVER['SERVER_NAME'] == "www.domain2.com" || $_SERVER['SERVER_NAME'] == "domain2.com")) {
Header("HTTP/1.1 301 Moved Permanently");
header("location: http://www.domain2.com/domain2");
}
到此为止工作完全正常。当我打电话给ww.domain1.com时,我会将其转发到相应的子目录并将域更改为www.domain1.com/domain1。这是我的问题出现的地方:如何隐藏URL中的子目录?我一直在为这个问题苦苦挣扎,阅读mod_rewrite的指南并搜索它,但没有获得成功。
我已经测试了我的RewriteEngine的服务器,这工作正常,我只是不能得到所需的行为。
编辑:
这是我的htaccess代码,位于子目录domain1。相同的代码位于directory2,更改为命名约定。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain1.com$
RewriteRule !^domain1/ domain1%{REQUEST_URI} [L]
我从这样的想法此:SO Article
在此先感谢;)
_“这两个域名指向我的服务器的根目录下的” _ - 为什么?处理这个问题的_proper_方法是设置两个VirtualHost,它们将它们指向_correct_各自的目录。 – CBroe
这不是我自己的服务器,它只是一个我租用的网络空间,有很多未使用的资源。为了节省一些费用,我决定将这两个网站托管在同一个网站空间中。 – turboLoop