mod_rewrite:在子目录中搜索域根目录

时间:2013-07-18 14:03:14

标签: apache mod-rewrite subdirectory

在我的网站上几乎每个网站都被缓存。静态htmfile从php写入文件夹:

  

/ __ turbo_realcache /

如果访问者请求 mydomain.com/sitex.htm ,apache首先查看是否在此处找到该文件:

/__turbo_realcache/sitex.htm

如果找到该文件,则将其传递给用户。如果缓存子文件夹中不存在该文件,则请求在内部重定向到index.php(生成输出的位置)并通过php打印出来。

这很有效,但在请求域根时它不起作用。所以如果用户打电话

mydomain.com

我正在研究的是: 如果访问者在其浏览器中请求 mydomain.com ,则htaccess应搜索名为

的静态htmlfile
  

/ __ 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

1 个答案:

答案 0 :(得分:0)

realcache静态文件规则之后添加此内容。

RewriteCond  %{REQUEST_URI}  ^/$
RewriteCond  %{DOCUMENT_ROOT}/__turbo_realcache/index.htm  -f
RewriteRule  ^  %{DOCUMENT_ROOT}/__turbo_realcache/index.htm  [L]