我试过寻找答案,但我似乎无法找到答案。
我想要的是当有人访问某个页面时,apache会检查该页面是否存在缓存文件然后加载而不是让php为其提供服务。
EG:http://example.com/about 为此,我使用下面的代码,它的工作原理。但是,只要我在这一端添加一个/:http://example.com/about/它不再起作用了。我尝试使我的缓存文件包含斜杠,但这是不可能的。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(POST)$
RewriteCond %{DOCUMENT_ROOT}/cached_pages/%{REQUEST_URI}.html -f
RewriteRule . %{DOCUMENT_ROOT}/cached_pages/%{REQUEST_URI}.html
</IfModule>
答案 0 :(得分:2)
我找到了解决方案。 @ishegg帮我修改了RewriteRule,而ReWriteCond则使用了变量。
<IfModule mod_rewrite.c>
RewriteEngine On
SetEnvIf Request_URI "^(.+?)/?$" PATH=$1
RewriteCond %{REQUEST_METHOD} !^(POST)$
RewriteCond %{DOCUMENT_ROOT}/cached_pages/%{ENV:PATH}.html -f
RewriteRule ^(.+?)/?$ %{DOCUMENT_ROOT}/cached_pages/$1.html
</IfModule>