apache伪静态RewriteCond %{REQUEST_FILENAME}

WordPress中以及很多php程序都会使用htaccess来控制静态化,以及一些特殊参数。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?id=$1
</IfModule>

很多人问过RewriteCond %{REQUEST_FILENAME} 是什么意思

RewriteCond %{REQUEST_FILENAME} !-f

代表的意思就

如果文件存在,就直接访问文件,不进行下面的RewriteRule.

RewriteCond %{REQUEST_FILENAME} !-d#如果目录存在就直接访问目录不进行RewriteRule

同理:

RewriteCond %{REQUEST_URI} !^.*(.css|.js|.gif|.png|.jpg|.jpeg)$ #如果是这些后缀的文件,就直接访问文件,不进行Rewrite

其中,

%{REQUEST_FILENAME}表示请求的文件名

!-f不是一个文件

!-d不是一个目录

[L] 这是最后一个匹配项,不再往下匹配

[R]相当与redirect [NC]不区分大小写。

原文地址:
http://www.vicenteforever.com/2013/09/apache-rewritecond-request_filename/

Related Posts