2010-02-28 106 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