为首页提供静态HTML,否则将其用作index.php

时间:2019-07-19 20:36:28

标签: apache apache2.4

我有一个非常标准的重写规则,可以将所有内容通过索引推送给我的CMS处理。

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME}/index.html !-f
  RewriteCond %{REQUEST_FILENAME}/index.php !-f
  RewriteRule . index.php [L]
</IfModule>

我想将我的主页和几个基石博客作为静态html服务,以提高加载速度。当请求root用户时,如何告诉Apache2服务/path/to/some.html

我尝试过

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteBase /

  RewriteCond %{REQUEST_URI} "^/$"
  RewriteRule ^/$ /path/to/some.html

  RewriteCond %{REQUEST_URI} "^/some/important/path$"
  RewriteRule ^/$ /path/to/some/other.html

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME}/index.html !-f
  RewriteCond %{REQUEST_FILENAME}/index.php !-f
  RewriteRule . index.php [L]
</IfModule>

但是,这仍然通过索引提供,并由CMS处理。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

.htaccess中看起来像这样,因此在进行每次更改后,处理将以新路径重新开始。添加[END]标志可在规则真正知道它想要成为最终规则时帮助缩短这种循环。

相反,现有的[L]标志仅停止当前处理。