如何为特定文件类型添加排除重写(取消重写)条件?

时间:2016-04-15 23:18:12

标签: .htaccess mod-rewrite url-rewriting

我有以下简单的重写,我采用略微不同的方法来重写网站内容。

RewriteEngine On
RewriteRule ^(.*)$ controller.php?page=$1 [NC,L,QSA]

目标是在任何地方重写所有文件和文件夹,除非文件属于特定类型。

传统上,采取以下方法对于这项努力来说过于放松:

1。排除实际存在的所有文件/文件夹:

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

2。从重写中排除特定文件夹

RewriteRule ^somepath - [L]

第3。仅重写特定文件类型

RewriteRule ^\.html index.php [NC,L,QSA]

4。 #2和文件类型的组合

RewriteCond %{REQUEST_URI} !/images/.*
RewriteRule ^(.*\.(gif|jpg|png))$ images/$1 [QSA,L]

我想知道的是我要插入什么规则来排除(保持样本简短):jpg,bmp,png被重写为controller.php,无论它们位于何处。

的伪代码

RewriteEngine On

# skip rewriting jpg,bmp,png
RewriteRule ^[..something here..] - [NC,L]

# rewrite everything else
RewriteRule ^(.*)$ controller.php?page=$1 [NC,L,QSA]

1 个答案:

答案 0 :(得分:1)

RewriteCond %{REQUEST_FILENAME} !.*\.extensiongoeshere