2

为了检查文件是否存在(不存在),我会写这样的东西

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 是否存在(请注意:没有子文件夹 /en!)

目录也应该如此。结论:如果 $3 [= (.*) in the RewriteRule] 作为文件或目录存在,它应该显示这个文件或目录,否则忽略。如何才能做到这一点?

4

1 回答 1

1

尝试:

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]
于 2013-05-09T12:11:50.863 回答