mod_rewrite:除了文件之外还重定向

时间:2009-09-09 11:24:28

标签: apache mod-rewrite directory

我在.htaccess文件当前所在目录的父目录中有一个Apache .htaccess文件。这可以完美地根据需要重定向所有请求。但是,我希望在这个目录中,如果请求是针对有效文件(而不是目录),则忽略主要重写规则。

目前,以下关闭目录的重写,我无法弄清楚原因。

<IfModule mod_rewrite.c>
 Options +FollowSymLinks
 Options +Indexes
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_URI} !-d
 RewriteCond %{REQUEST_URI} -f
 RewriteRule . - [L]
</IfModule>

感谢任何贡献者。

1 个答案:

答案 0 :(得分:1)

尝试使用REQUEST_FILENAME代替REQUEST_URI

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule . - [L]

REQUEST_URI仅包含URI路径,但Apache需要绝对文件系统路径来再次测试-d-fREQUEST_FILENAME保存与当前请求的URI对应的绝对文件系统路径。