2013-02-07 80 views
0

两个子文件夹,我需要做这样的事情:如何重写规则使用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] 

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

是否有一种方法可以将两个.htaccess文件组合在一起,并使它们正常工作?

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

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

感谢。

回答

0

最后我它是这样的:

RewriteEngine on 
RewriteBase/

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

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

########## SITE 3 (by URL) 
RewriteCond %{HTTP_HOST} ^mysite3.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.mysite3.com$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L, QSA] 
0

如果您的文件夹的名称是一样的站点的名称:

RewriteEngine on 

RewriteCond %{HTTP:Host} ^www\.([^.]+)\.com$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /%1/index.php?url=$1 [L,QSA] 
+0

其中一个网站有一个域名(www.website.com),另一个只是子域内的一个子文件夹(www.demo.we bsite.com/website2 /')我不知道这是否会如此简单。 – Alvaro

1

比我不能想出什么比这更好:

########## SITE 1 
RewriteEngine on 
RewriteCond %{HTTP:Host} ^www\.website\.com$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /mysite1/index.php?url=$1 [L,QSA] 

########## SITE 2 
RewriteEngine on 
RewriteCond %{HTTP:Host} ^www\.demo\.website\.com$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /mySecondSite/index.php?url=$1 [L,QSA] 
+0

它与我最终做的相似。你可以看到我的答案。但是...为什么我们应该重复同样的rewriteConditions?它们不适用于所有网站吗?分隔一个站点和另一个站点的rewriteconds? – Alvaro

+1

一个条件适用于遵循它的规则。它不会影响其他人。 – Andrew

+0

感谢您的信息! :)它是否与RewriteEngine和RewriteBase一样?我是否应该为每组规则再写一次? – Alvaro