2010-10-18 143 views
0

我为我的网站创建了一个前端控制器。我想通过这个前端控制器将所有请求传递给网站。现在我还在web根目录中安装了一些其他软件,现在我将这些文件夹添加到忽略通过.htaccess,以便他们的请求也不会去前端控制器。我在做类似下面,只通过.htaccess重写特定的URL

 

    RewriteEngine On 
    RewriteCond $1 !^(folder1|folder2|folder3|robots\.txt) 
    RewriteRule ^(.*)$ index.php [QSA,L] 

这适用于现在,但有没有办法只添加特定站点或文件夹的请求通过index.php文件获得通过的例如:www.mysite.com或www .mysite.com/folder4或mysite.com。

这样我就不必一直添加文件夹来忽略创建新文件夹。

谢谢。

编辑:我会尽量让它更简单。我希望一个特定文件夹和主站点的所有请求都通过前端控制器。除了这些,所有的请求应照常处理

回答

0

你可以使用这些条件,而不是排除可以被映射到现有的文件或目录的任何请求:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
0

可以使用SERVER_NAME变量:

RewriteCond %{SERVER_NAME} ! ^(www\.)?mysite\.com$ 
+0

好吧,我想要的是如果请求是http://www.mysite.com那么请求应该通过index.php控制器。如果请求是http://www.mysite.com/folder1,那么它不应该通过任何控制器。服务器名称将是相同的,我只想使用控制器只有一些文件夹和主站点没有。 – Harsha 2010-10-18 08:12:52