我正在尝试使用php和.htaccess创建一个url处理程序,我的问题是,只有在url中输入的文件\目录不存在时,我才知道如何使用重写条件。
答案 0 :(得分:10)
请查看此RewriteCond
资源。
RewriteCond %{REQUEST_FILENAME} !-f
// ^ this means file.
RewriteCond %{REQUEST_FILENAME} !-d
// ^ this means NOT, "d" means directory.
// Your rewrite rule here.
答案 1 :(得分:3)
它与shell脚本-d和-f函数非常相似。
尝试类似的东西:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule XXX
答案 2 :(得分:2)
' - d'(是目录)将TestString视为路径名并进行测试 是否存在,是一个目录。
' - f'(是常规文件)将TestString视为路径名并进行测试 它是否存在,是一个常规文件。
以感叹号('!')为前缀,否定其含义。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
答案 3 :(得分:2)
这应该这样做(替换<filename>
):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* <filename> [L]
如果文件,目录或链接不存在,它会进行重定向。