检查目录中是否存在文件或请求另一个文件

时间:2011-03-06 02:13:57

标签: apache .htaccess rewrite

是否有任何.htaccess规则检查“mydir”中是否存在请求的文件并获取index.php?get=mydir

我试过这个但没有工作:

RewriteCond mydir/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ /index.php?get=$1 [L]

2 个答案:

答案 0 :(得分:1)

如果你正在使用Apache,我建议使用它:

http://httpd.apache.org/docs/2.0/mod/mod_actions.html

这可能不是最好的方法,但对我有用。

基本上,您将设置Apache将通过的所有请求发送的脚本。

# Files of a particular file extension
AddHandler handler .html
Action handler /handler.php

每次请求html文件时,Apache都会运行handler.php。

handler.php内,您可以使用$_SERVER来确定所请求的文件,检查它是否存在,如果确实存在,则将其包括在内。如果它不存在,那就做你需要做的事。

答案 1 :(得分:1)

如果页面存在,则提供其他服务,请将以下内容添加到.htaccess文件中,

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteRule .+ - [L]

# serve file if exists
RewriteCond %{DOCUMENT_ROOT}/cache/index.html -f 
RewriteRule ^(.*)$ /cache/index.html [L,QSA]

# else serve other file
RewriteCond %{DOCUMENT_ROOT}/cache/index.html !-f 
RewriteRule ^(.*)$ /index.html [L]

不要忘记,要使其正常工作,您的vhosts文件中应该包含 AllowOverride All