我正在尝试使用 php 和 .htaccess 创建一个 url 处理程序,我的问题是我不知道如何使用重写条件,只有在 url 中输入的文件\目录不存在时。
问问题
10254 次
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 回答