在同一个htaccess中有两个重写规则

时间:2016-09-05 17:12:12

标签: .htaccess url-rewriting friendly-url

在我的网络服务器的www根文件夹中,我有2个不同网站的2个文件夹

www/firstsite
www/secondsite

要访问第一个网站的index.php文件,请转到www.firstsite.com/firstProject

要访问第二个网站的index.php文件,请转到www.secondsite.com/secondProject

我想在根文件夹“www”中放置一个唯一的htaccess文件。这个htaccess文件对两个webstie都有一个重写。

因此,用户会看到www.firstsite.com而不是www.firstsite.com/firstProject

www.secondsite.com代替www.secondsite.com/secondProject

编辑:我使用此htaccess重写www.firstsite.com的网址(不要忘记此网站位于www/firstsite文件夹中:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ firstsite/$1 [QSA,L]
</IfModule>

Edite:这是答案,谢谢hjpotter92!

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(?:www\.)?firstsite\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/firstProject [NC] 
RewriteRule ^(.*)$ /firstProject/$1 [L] 
RewriteCond %{HTTP_HOST} ^(?:www\.)?secondsite\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/secondProject [NC] 
RewriteRule ^(.*)$ /secondProject/$1 [L] 

1 个答案:

答案 0 :(得分:1)

使用%{HTTP_HOST}变量测试您的域名,并根据以下内容重定向:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?firstsite\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/firstProject [NC]
RewriteRule ^(.*)$ /firstProject/$1 [L]

类似的规则适用于您的第二个域名。