htaccess файл как-то кешируется? - PullRequest
20 голосов
/ 21 декабря 2010

У меня был файл .htaccess, который делал очень простую переписку имен страниц. Это содержимое файла:

Options +FollowSymlinks
RewriteEngine on
RewriteRule setup setup.php [NC]

Теперь я хочу прекратить переписывать настройки в setup.php - как мне это сделать? Я попытался удалить строку из файла, я попытался удалить файл и перезапустить apache, и он все еще переписывает настройки в setup.php. Как мне это остановить? Кажется, он полностью игнорирует любой другой созданный мной файл .htaccess, и в журнал ошибок ничего не записывается. Это куда-то кеширует файл? Как мне это остановить?

Я использую apache2 в Ubuntu.

Ответы [ 4 ]

22 голосов
/ 14 мая 2012

Если у вас возникли проблемы с обновлением файла htaccess из-за кэширования перенаправления в вашем браузере.Вы можете использовать веб-браузер, такой как Google Chrome или Safari, чтобы открыть сеанс частного просмотра или окно инкогнито.

Каждый раз, когда вы обновляете файл htaccess, вам нужно будет закрыть все окна / вкладки в режиме инкогнито, а затем открыть новую.Окно инкогнито не будет записывать в кеш после текущего сеанса и не будет использовать существующий кеш при начальной загрузке.Это отличный способ обойти проблемы с кэшированием при тестировании, а также отличный способ выяснить, вызвана ли ваша проблема кешем вашего браузера.

Не уверен, но Firefox и более новые версии IE могутимеют аналогичную особенность.

18 голосов
/ 23 марта 2011

Проблема в том, что MultiViews включен.MultiViews автоматически добавляет расширения к любым запрошенным URL-адресам, если это возможно.Это не имеет никакого отношения к вашему RewriteRule;просто так получилось, что вы переписывали setup в setup.php, поэтому MultiViews и ваше правило делали то же самое.

Добавьте -MultiViews в директиву Options, чтобы отключить ее.*

1 голос
/ 30 января 2014

1) Убедитесь, что nginx не доставляет вам проблем - я просто отключил его, но уверен, что есть способы его правильно настроить, если вы хотите его использовать.(Для меня это было установлено по умолчанию на новейших DV-серверах MediaTemple).

2) Попробуйте добавить это в httpd.conf или vhost.conf или какой-либо другой файл конфигурации далее по цепочке питания из htaccess вашего домашнего каталогафайл:

Header merge Cache-Control no-cache env=NO_CACHE
Header merge Cache-Control no-store env=NO_STORE
0 голосов
/ 28 февраля 2011

Решение состоит в том, чтобы открыть файл / etc / apache2 / sites-available / default и изменить его:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

На это:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

Обратите внимание на директиву AllowOverride- этот файл явно переопределяет все остальные инструкции в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...