仅通过.htaccess重写特定的URL

时间:2010-10-18 07:16:07

标签: apache .htaccess

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


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

现在可以使用,但有没有办法只为特定的域或文件夹添加请求,以便通过index.php传递给Eg:www.mysite.com或www.mysite.com/folder4或mysite.com。

这样,无论何时创建新文件夹,我都不必继续添加文件夹。

感谢。

编辑:我会尝试让它变得更简单。我希望一个特定文件夹和主站点的所有请求都通过前端控制器。除此之外,所有请求都应照常处理

2 个答案:

答案 0 :(得分:0)

您可以使用这些条件来排除任何可以映射到现有文件或目录的请求:

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

答案 1 :(得分:0)

您可以使用SERVER_NAME变量:

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