mod_rewrite:重定向到缓存或脚本

时间:2012-02-15 17:02:01

标签: php apache caching mod-rewrite rewrite

对于我正在处理的“缓存”解决方案,我的mod_rewrite配置遇到了一些麻烦。我有一个名为“cache”的目录,其中包含已编译的html文件。我还有一个index.php文件来处理所有请求。

现在所有请求都被重写为index.php文件,如:“/ articles”=>的index.php?Q =文章。

但是现在我希望它重写为“cache / articles / index.html”(如果它存在),或者只是后退并重写为index.php脚本。

我已经搞砸了一段时间了,但是我无法让它发挥作用。重写代码现在看起来像这样(没有任何缓存):

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

</IfModule>

提前致谢:)

1 个答案:

答案 0 :(得分:1)

尝试将以下内容添加到站点根目录中的.htaccess文件中。

RewriteEngine on
RewriteBase / 

#if the index.html exists in the cache
RewriteCond %{DOCUMENT_ROOT}/cache%{REQUEST_URI}/index.html -f [NC] 
#then display it
RewriteRule ^ cache%{REQUEST_URI}/index.html [L]

#other existing rules go here