htaccess переопределяет запрошенный uri, существующий в папке кэша

#regex #apache #.htaccess #mod-rewrite

#регулярное выражение #apache #.htaccess #мод-перезапись

Вопрос:

Я хочу проверить, запрашивает ли пользователь какую-либо страницу, htaccess проверяет эту страницу в папке кэша и существует ли кэшированная страница. htaccess перезаписывает запрошенную страницу на эту кэшированную страницу.

структура папок:

root/
продукт /
сервисы/
кэш/
продукт/index.html
службы/index.html
index.php
images/
css/

например: example.com/product / to example.com/cache/product/

Ответ №1:

поместите этот код в свой DOCUMENT_ROOT/.htaccess файл:

 RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/cache/$2/index.html -f [NC]
RewriteRule ^(. ?)/?$ /cache/$1/index.html [L]

RewriteCond %{DOCUMENT_ROOT}/cache/$1 -f [NC]
RewriteRule ^(. ?)/?$ /cache/$1 [L]
  

Комментарии:

1. если я наберу example.com/product / его сообщение не найдено 404, example.com/product/index.html чем его работа. пожалуйста, помогите мне в этом

2. Я буду использовать этот скрипт для динамических файлов, таких как уменьшенный js css

3. Убедитесь, что этот файл .htaccess находится в DocumentRoot , и это правило является вашим самым первым правилом. Также убедитесь, что $DOCUMENT_ROOT/cache/product/index.html файл существует.

4. файл находится там. и .htaccess находится в корневом каталоге

5. Очень, очень аккуратное использование mod-rewrite! 1 как к вопросу, так и к ответу. 🙂