Нужно ли перезапускать apache, чтобы правила перезаписи в .htaccess вступили в силу?

StackOverflow https://stackoverflow.com/questions/142559

Вопрос

Я перенес свои файлы .htaccess на рабочие серверы, но они не работают.Будет ли перезапуск следующим шагом, или мне следует проверить что-то еще?

Это было полезно?

Решение

Перезапуск - это нет требуется для внесения изменений в файл .htaccess.Что-то еще не так.

Убедитесь, что ваш файл .htaccess содержит инструкцию

Переписать двигатель на

который требуется, даже если он также присутствует в httpd.conf.Также убедитесь, что файл .htaccess доступен для чтения процессом httpd.
Проверьте error_log - он сообщит вам о любых ошибках в .htaccess если его используют.Ввод преднамеренной синтаксической ошибки в .htaccess является хорошей проверкой, чтобы убедиться, что файл используется - вы должны получить ошибку 500 на любой странице в том же каталоге.

Наконец, вы можете включить перезапись журнала, используя команды, подобные приведенным ниже, в вашем httpd.conf:

Журнал перезаписи "журналы/rewritelog"

Уровень перезаписи 7

Созданный таким образом файл журнала предоставит вам подробную информацию о том, какие правила перезаписи соответствовали друг другу и как они были обработаны.

Другие советы

НЕТ:

Apache позволяет децентрализованно управлять конфигурацией с помощью специальных файлов, размещенных внутри веб-дерева.Специальные файлы обычно называются .htaccess, но любое имя может быть указано в Имя файла доступа директива...Поскольку файлы .htaccess считываются при каждом запросе, изменения, внесенные в эти файлы, вступают в силу немедленно...

Из документации apache:Чаще всего проблема заключается в том, что AllowOverride не установлен таким образом, чтобы выполнялись ваши директивы конфигурации.Убедитесь, что у вас нет действующего параметра AllowOverride None для рассматриваемой области действия файла.Хороший тест для этого - поместить мусор в ваш файл .htaccess и перезагрузить.Если ошибка сервера не сгенерирована, то у вас почти наверняка действует AllowOverride None.

Только если у вас есть нет добавлен модуль mod_rewrite в Apache.

Вам нужно перезапустить Apache только в том случае, если вы измените какие-либо файлы Apache ".conf".

У меня такая же проблема, и, похоже, сообщение PiedPiper о AllowOverride было наиболее полезным.Проверьте ваш файл httpd.conf на наличие "AllowOverride" и убедитесь, что для него установлено значение All.

В случае .htaccess перезапуск не требуется, если он не работает, вероятные причины включают.

  • Разрешить повторный переход Возможно, не задано, какой пользователь может установить внутри httpd.conf, или, возможно, придется обратиться к администратору сервера.

  • Проверьте имя файла .htaccess, оно должно быть .htaccess, а не htaccess.txt смотрите здесь для получения руководства по его созданию.

  • Попробуйте использовать Options -Indexes или deny all своего рода простая директива, позволяющая проверить, работает она или нет.

  • очищайте кэш браузера каждый раз, если у вас есть правило для перенаправлений или аналогичное, если предыдущее перенаправление кэшируется, кажется, что что-то не работает.

Что находится в вашем .htaccess?Переписать правила?Убедитесь, что mod_rewrite установлен и включен.

Другие вещи?Попробуйте установить значение AllowOverride для 'all' в этом каталоге.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top