Подтвердить что ты не робот

Файл htaccess каким-то образом кэшируется?

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

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

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

Я использую apache2 на ubuntu.

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Решения заключаются в том, чтобы открыть файл /etc/apache 2/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 - этот файл, по-видимому, переопределяет все другие инструкции в другом месте.