如何在.htaccess中检查文件是否存在于特定文件夹中?

时间:2013-03-15 10:27:46

标签: .htaccess url mod-rewrite uri

我使用此代码:

RewriteCond public/%{REQUEST_FILENAME} -f [OR]
RewriteCond public/%{REQUEST_FILENAME} -d 
RewriteRule public/.* - [L]

它不起作用。

例如,我想要那个网址: http://example.com/style.css 像这样安慰

公共/ style.css中

如果style.css存在于公共目录中。谢谢:))

1 个答案:

答案 0 :(得分:1)

如果我没记错的话:

RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -d 
RewriteRule public/.* - [L]

修改

%{REQUEST_FILENAME}包含所请求文件的完整路径。所以例如/var/www/example.com/index.html。因此,在前面添加public/将导致public/var/www/example.com/index.html,这永远不会存在。因此,您使用包含%{DOCUMENT_ROOT}的{​​{1}}和包含/var/www/example.com的{​​{1}}

另请注意,%{REQUEST_URI}/index.html需要完整路径,而不仅仅是wwwroot相对路径。