2010-02-28 3 views
1

У меня есть система кэширования файлов для приложения php. если файл нуждается в кешировании, я сохраняю его в директории кэша, как плоский html, имитирующий структуру каталогов request_urihtacces для обслуживания кешированных файлов

Как я могу проверить с помощью 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 

как бы я проверить, если имеется плоский HTML файл, расположенный в

app/tmp/cache/posts/45/the-name-of-my-post/index.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

Смежные вопросы