在我的网站上,几乎每个站点都被缓存。静态 htmfile 从 php 写入文件夹:
/__turbo_realcache/
如果访问者请求mydomain.com/sitex.htm,则 apache 首先查看是否在此处找到该文件:
/__turbo_realcache/sitex.htm
如果找到该文件,则将其交付给用户。如果缓存子文件夹中不存在该文件,则请求在内部重定向到 index.php(生成输出的位置)并通过 php 打印出来。
这很好用,但是在请求域根目录时它不起作用。所以如果用户调用
mydomain.com
我正在寻找的是:如果访问者在他的浏览器中请求mydomain.com,那么 htaccess 应该搜索一个名为
/__turbo_realcache/index.htm
如果找到,把它交给用户(怎么做?)。如果没有找到,重定向到 index.php(已经工作)。
这是我完整的 htaccess:
RewriteEngine on
# redirect www to non www
#############################################################################
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# search for realcache static files. if found stop and be happy.
#############################################################################
RewriteCond %{DOCUMENT_ROOT}/__turbo_realcache/%{REQUEST_URI} -f
RewriteRule ^(.+) %{DOCUMENT_ROOT}/__turbo_realcache/$1 [L]
# Don't apply to URLs that go to existing files or folders.
# Everything else goes to index.php where I decide what is shown to the user.
#############################################################################
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php