0

我的服务器上有一个文件夹结构,如下所示:

.htaccess
index.php
[website1]
    [placeholder]
        index.php
[website2]
[website3]

所有域 web1.com、web2.com 和 web3.com 都链接到该目录。我喜欢 htaccess 将它们路由到正确的目录。所以 web1.com 转到 website1,web2.com 转到 website2,等等。

但是,我喜欢 URL 类似于http://www.web1.com/,它应该显示 website1 中的内容。

现在我有以下代码:

RewriteCond %{HTTP_HOST} ^(web1.com)$ [NC]
RewriteRule ^(.*)$ http://www.web1.com/$1

RewriteCond %{HTTP_HOST} ^(www.web1.com)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /website1/$1

RewriteCond %{HTTP_HOST} ^(www.web1.com)$ [NC]
RewriteRule ^(/?|index.php)$ website1/index.php [L]

这可行,但是如果您访问http://www.web1.com/placeholder,它将在 URL 中显示以下内容:

http://www.web1.com/website1/placeholder/

当然,最好将 URL 视为http://www.web1.com/placeholder。作为记录http://www.web1.com/placeholder/确实显示了正确的页面。

我怎样才能解决这个问题?它快把我逼疯了。

编辑(答案):

RewriteCond %{HTTP_HOST} ^(www.web1.com)$ [NC]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^website1/(.*)([^/])$ http://%{HTTP_HOST}/$1$2/

不确定这是否是正确的方法,但它似乎有效。

4

0 回答 0