如何从RewriteRule中排除特定目录

时间:2018-12-21 10:32:01

标签: apache mod-rewrite

我想通过任何给定的HTML src标签从其相对路径渲染图像。但是,我在应用程序不同部分的mod_rewrite规则可以使图像的实际路径被第一个参数的第一个参数覆盖。

我试图搜索stackoverflow答案,以找到添加重写条件以排除tools和/或img文件夹但不占优势的方法。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(tools|img) [NC]
RewriteCond %{REQUEST_URI} !^.*\.(css|js|png|bmp)$ [NC]
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?view=$1&p=$2 [L,QSA]

我希望能够查看存储在tools目录中的图像,而不必用view参数$1替换基本目录,以便查看实际图像。

基本上,我有一张图片存储在/tools/img/whatever.png

但是,我的重写规则使之成为可能,因此添加了view的任何参数作为存储图像的基础,例如

/index.php?view=test&p=whatever

然后将tools目录替换为

/test/tools/img/whatever.png

,因此它返回一个404,因为当我有一个HTML标签显示它<img src="/tools/img/whatever.png">时,该测试目录不存在。

0 个答案:

没有答案