如何使用 mod_rewrite 重写两个子文件夹的规则

如何使用 mod_rewrite 重写两个子文件夹的规则

我需要做这样的事情:

########## SITE 1 
RewriteEngine on 
RewriteBase /mysite1  
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

########## SITE 2
RewriteEngine on 
RewriteBase /mySecondSite   
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

问题是我只能使用一个.htaccess文件,因为我正在使用Helicon ISAPI_Rewrite 3在 Windows 2003 Server 上。

有没有办法将两个 .htaccess 文件合并到其中一个文件中并使它们正常工作?

我曾尝试这样做,只是为了测试如果mysite没有 是否可以工作RewriteBase,但似乎不起作用:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^mysite1/(.*)$ index.php?url=$1 [L,QSA] 

谢谢。

答案1

尝试这个

RewriteEngine on 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^mysite1/(.*)$ mysite1/index.php?url=$1 [L,QSA] 
RewriteRule ^mysite2/(.*)$ mysite2/index.php?url=$1 [L,QSA] 

答案2

假设您的目录名称与域名相对应,例如 www。我的网站.com 的文件位于目录中/我的网站/和 www.我的其他网站.com 的文件位于 /我的其他网站/那么您可以尝试以下操作:

[ISAPI_Rewrite]
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST}        ^(www\.)?([^.]*)\.com$
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .*    /%2/index.php?url=%{REQUEST_URI} [L,QSA] 

相关内容