.htaccess,检查RewriteRule Regex是否作为文件或目录存在

时间:2013-05-09 08:34:49

标签: regex .htaccess mod-rewrite

为了检查文件是否为eixists(不存在),我会写出类似的东西

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((en|es|de)/)?([a-z0-9\+_-]+)/?$ something.php?hl=$2&seoq=$3 [QSA,L,NC]

这很好用,但是如何检查文件是否存在基于RewriteRule的结果变量

-

示例:

RewriteCond $3 -f (???)
RewriteRule ^((en|es|de)/)?(.*) $3?hl=$2 [QSA,L,NC]

-

它应该做什么/应该做什么?

每当一个文件,例如 / en / subdir /something.jpg,在地址栏中调用,服务器应该看, / subdir /something.jpg存在(请注意:没有子文件夹/烯!)

目录也应如此。结论:如果RewriteRule中的$ 3 [=(。*)]作为文件或目录存在,它应显示此文件或目录,否则忽略。怎么办呢?

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteCond %{REQUEST_URI} ^((en|es|de)/)?(.*)
RewriteCond %{DOCUMENT_ROOT}/%3 !-f
RewriteCond %{DOCUMENT_ROOT}/%3 !-d
RewriteRule ^((en|es|de)/)?([a-z0-9\+_-]+)/?$ something.php?hl=$2&seoq=$3 [QSA,L,NC]
相关问题