我的服务器上有一个文件夹结构,如下所示:
.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/
不确定这是否是正确的方法,但它似乎有效。