.htaccess规则加载静态文件,如果基于REQUEST_URI的文件路径存在

时间:2016-07-08 15:14:58

标签: .htaccess

所以我有一个网站,我设法为索引页面写了.htaccess规则,类似于:

#my .htaccess file lives under the %{DOCUMENT_ROOT}/site/www  
RewriteCond %{SCRIPT_URL} ^$   RewriteCond
%{DOCUMENT_ROOT}/site/www/static/index.html -f   RewriteRule ^$
static/index.html [L]

这基本上是检查索引页面(http://mywebsite.dev)的每个请求,并从名为static的文件夹中加载,并从名为index.html的文件中加载

到目前为止一直很好,但我试图让它适用于博客页面。 所以在这种情况下我们有http://mywebsite.dev/blog

我在我的PHP脚本中调试了$ _SERVER变量,所以我很确定我在那里有什么,我希望这可以工作:

RewriteCond %{QUERY_STRING} =""
RewriteCond %{DOCUMENT_ROOT}/site/www/static%{REQUEST_URI}/index.html -f
RewriteRule ^(.*)$ static/$1/index.html [L]

但它不起作用。所以这里的想法是 - 如果一个文件夹的名称,在这种情况下是博客 - 存在,如果在该文件夹中有一个index.html文件 - 从那里加载页面,如果没有查询字符串。

我也试过第二行看起来像

RewriteCond %{DOCUMENT_ROOT}/site/www/static/%{REQUEST_URI}/index.html -f

并尝试了很多其他的东西,但它没有用。它可能是一些非常小的东西,或者是我所遗漏的非常大的东西,所以如果有人有更好的线索可能会出现问题,请帮我解决这个问题:)

0 个答案:

没有答案