Нужно ли перезапускать apache, чтобы правила перезаписи в .htaccess вступили в силу?
-
02-07-2019 - |
Вопрос
Я перенес свои файлы .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' в этом каталоге.