4

我有一个网站使用通用 mod_rewrite 规则将所有请求推送到 index.php 页面,但某些文件扩展名除外:

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.php

我需要做的也是从该规则中排除某个目录(包括其中包含的任何文件或子目录)——最好的解决方案是什么?

这是我的完整 .htaccess 文件,以防其中的其他内容受到干扰:

RewriteEngine ON
RewriteCond %{HTTP_HOST} !^www\..*
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{HTTP_HOST} ^([^.]*)\.(co\.uk)
RewriteRule ^.*$     http://www.%1.%2%{REQUEST_URI} [R=permanent,L]

AddHandler application/x-httpd-php .phtml

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.phtml

php_value display_errors "On"
4

2 回答 2

7

在您引用的行之前,例如,对于名为“样式”的目录,您需要:

RewriteRule  ^style/  -  [L]

连字符表示“无重定向”,“[L]”表示“最后一条规则”,因为不要继续尝试将 URL 与以下规则匹配。您可以根据需要添加任意数量的这些行,但它们必须在您在问题中给出的行之前。

于 2008-12-01T23:23:01.267 回答
0

您可以检查与RewriteCond %{REQUEST_FILENAME} !-f现有文件名不匹配的任何请求。

于 2008-12-01T20:57:37.177 回答