我的服务器上有一个文件夹结构,如下所示:
.htaccess
index.php
[website1]
[placeholder]
index.php
[website2]
[website3]
所有域名web1.com,web2.com和web3.com都链接到此目录。我喜欢将htaccess路由到正确的目录。所以web1.com转到website1,web2.com转到website2等。
但我喜欢这个网址类似于http://www.web1.com/,它应该在网站1中显示内容。
现在我有以下代码:
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,则会在网址中显示以下内容:
http://www.web1.com/website1/placeholder/
当然,最好将网址视为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/
不确定这是否是正确的方法,但似乎有效。