2010-02-28 35 views
1

我有一个PHP应用程序的文件缓存系统。如果一个文件需要缓存我将它保存到一个缓存目录作为平HTML模仿request_uri的目录结构htacces服务缓存的文件

我怎么能检查与htaccess如果这个缓存目录中有一个平面文件,然后继续正常?目前我检查与PHP,但理想情况下,如果有一个缓存的文件,我想没有服务器的代码运行该请求。

我的当前设置路由一切通过索引文件,然后PHP基于uri确定要包含的文件。

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

所以说,一个请求进来作为

http://localhost/posts/45/the-name-of-my-post/ 
or 
http://localhost/posts/45/the-name-of-my-post 

如何将我检查,看看是否有位于

app/tmp/cache/posts/45/the-name-of-my-post/index.html 

感谢平坦的HTML文件,对不起,如果这是一个愚蠢的问题,我相当新手重写规则。如果任何人有更好的主意如何从缓存的请求中消除php代码,我可以打开任何东西。

确定现在试图

试过,但doenst似乎是工作,我俯瞰什么?

我的要求是

http://localhost/posts/view/23/another-post/ 

试图服务了

http://localhost/app/tmp/cache/posts/view/23/another-post/ 

回答

1

试试这个:

RewriteCond app/tmp/cache/%{REQUEST_URI} -d 
RewriteRule (.*) app/tmp/cache/%{REQUEST_URI}/ 
0

RewriteCond %{REQUEST_FILENAME} !-f

该声明已经说“如果请求的文件不存在,就转到下一条语句,否则检索它“

+1

如果他的网络的根是应用程序的/ tmp /缓存/是的。这几乎肯定不是这种情况。 – jasonbar 2010-02-28 02:09:22