.htaccess如果图像位置存在则不重写URL

时间:2016-07-26 14:32:05

标签: apache .htaccess mod-rewrite

我的DocumentRoot中有.htaccess文件

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

RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]

但是,如果用户尝试转到网址/images/1/image.png,则会显示图像,而不是重写请求并将其发送到带有1和{{1的index.php } image.png参数。

有没有办法改变这一点,以便如果任何用户路径直接指向现有图像,他们将被定向到我的index.php文件,因为我想先处理路由并检查权限,然后再显示此图像。 / p>

注意:我不想简单地拒绝访问,我只想远离图像,然后我可以检查权限,然后在权限正确的情况下显示权限。

1 个答案:

答案 0 :(得分:1)

您可以使用此规则:

RewriteEngine on

RewriteRule ^images/(.*)$ index.php?request=$1 [L,QSA,NC]

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

RewriteCond %{REQUEST_FILENAME} !-f可以避免重写任何现有文件。