Htaccess如何正确路由到正确的目录?

时间:2013-01-24 13:44:08

标签: .htaccess routing

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

.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/

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

0 个答案:

没有答案