4

我正在尝试使用 php 和 .htaccess 创建一个 url 处理程序,我的问题是我不知道如何使用重写条件,只有在 url 中输入的文件\目录不存在时。

4

4 回答 4

13

请看一下这个RewriteCond资源。

RewriteCond %{REQUEST_FILENAME} !-f
//                                ^ this means file.
RewriteCond %{REQUEST_FILENAME} !-d
//                              ^ this means NOT, "d" means directory.
// Your rewrite rule here.
于 2012-07-25T09:50:08.110 回答
4

它与 shell 脚本 -d 和 -f 函数非常相似。

尝试这样的事情:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule XXX
于 2012-07-25T09:50:07.060 回答
2

'-d' (is directory) 将 TestString 视为路径名并测试它是否存在,并且是一个目录。

'-f' (是常规文件) 将 TestString 视为路径名并测试它是否存在,并且是常规文件。

以感叹号('!')为前缀以否定它们的含义。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
于 2012-07-25T09:50:29.013 回答
2

这应该这样做(替换<filename>):

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* <filename> [L]

如果文件、目录或链接不存在,它会进行重定向。

于 2012-07-25T09:51:12.240 回答