Правильно ли используется кеш-код apache .htaccess? перенаправления существуют даже после удаления файла

У меня был файл .htaccess, который удалял все расширения .php из файлов, поэтому, если я перехожу к localhost/path/to/file, он перенаправляется на localhost/path/to/file.php. Все работает отлично, пока я не решил добавить новое правило для .htaccess, и оно не работает.

Я удалил файл .htaccess в своей домашней папке и проверил, существуют ли какие-либо другие папки с помощью команды: cd/var/www, а затем ls -laR | grep .htaccess, и я не обнаружил, что ничего не существует. Однако правила перенаправления все еще соблюдаются!

Я попытался очистить весь кеш браузера и все еще не работал, я попробовал cURL и все еще apache выполнил исходное правило удаления .php-расширений файлов. Я загрузил расширение httpfox в firefox и показал мне запрос, который я сделал для localhost/projectname/index, а «Content-Location» - «index.php». Я пробовал бесконечно перезапускать apache и не повезло.

Как я могу избавиться от «кэшированных» правил htaccess?

EDIT: Я попытался на своем iPad и моем мобильном устройстве, но проблема остается, поэтому я уверен, что правила где-то сохраняются

EDIT: Я добавил правило, чтобы удалить .html, и это сработало, но когда я его удалил, оно все еще существует и .php.

5
nl ja de
Можете ли вы разместить содержимое своего .htaccess, прежде чем удалять его?
добавлено автор NobleUplift, источник
options Multiviews также могут связывать отсутствующие расширения, а 301 переадресация кэшируется в браузере (требуется перезагрузка). Также вы перезапустили apache?
добавлено автор regilero, источник
Возможно ли это в какой-то глобальной конфигурации apache в /etc/httpd/conf.d или подобных местах?
добавлено автор Jonas Wielicki, источник
@Gerben Звучит довольно подозрительно, что даже завиток видит перенаправление, хотя ...
добавлено автор Jonas Wielicki, источник
Попробуйте очистить кеш браузера. 301 Переадресация кэшируется довольно агрессивно браузерами. Apache не кэширует htaccess (по умолчанию).
добавлено автор Gerben, источник
@JonasWielicki /etc/httpd/conf.d не существует, однако /etc/apache2/httpd.conf пуст
добавлено автор george, источник

1 ответы

Нет, файлы .htaccess не кэшируются, по умолчанию или иным образом. (т. е. не удается заставить Apache кэшировать файлы .htaccess.) Они перечитываются при каждом отдельном запросе.

Однако есть и другие места, в которых будет кэшироваться переадресация, включая ваш браузер и любые промежуточные прокси между вашим браузером и сервером.

И нет, вам не нужно перезапускать Apache для изменения файлов .htaccess.

3
добавлено
Вы кешируете .htaccess, комбинируя AllowOverride None для каталога, содержащего файл, а затем Include /.../.htaccess. Затем он читается только один раз, на старте/грациозно.
добавлено автор Jeremy L, источник