Я отправил свои файлы .htaccess на производственные серверы, но они не работают. Будет ли перезапуск следующим шагом, или я должен проверить что-нибудь еще.
Я отправил свои файлы .htaccess на производственные серверы, но они не работают. Будет ли перезапуск следующим шагом, или я должен проверить что-нибудь еще.
Ответы:
Для изменений в .htaccess перезапуск не требуется. Что-то еще не так.
Убедитесь, что ваш .htaccess включает инструкцию
RewriteEngine на
который требуется, даже если он также присутствует в httpd.conf. Также убедитесь, что .htaccess доступен для чтения процессом httpd.
Проверьте error_log - он сообщит вам обо всех ошибках в .htaccess, если он используется. Помещение преднамеренной синтаксической ошибки в .htaccess - хорошая проверка, чтобы убедиться, что файл уже используется - вы должны получить ошибку 500 на любой странице в том же каталоге.
Наконец, вы можете включить перезапись журнала с помощью следующих команд в httpd.conf:
RewriteLog "журналы / перезапись"
RewriteLogLevel 7
Сгенерированный таким образом файл журнала даст вам подробные сведения о том, какие правила перезаписи совпали и как они были обработаны.
Нет :
Apache позволяет децентрализованно управлять конфигурацией с помощью специальных файлов, размещенных внутри веб-дерева. Обычно вызываются специальные файлы
.htaccess
, но в директиве AccessFileName можно указать любое имя ... Поскольку файлы .htaccess читаются при каждом запросе, изменения, внесенные в эти файлы, вступают в силу немедленно ...
Из документации apache: Чаще всего проблема в том, что AllowOverride не установлен таким образом, что ваши директивы конфигурации соблюдаются. Убедитесь, что у вас не действует AllowOverride None для рассматриваемой области файла. Хороший тест для этого - поместить мусор в файл .htaccess и перезагрузить его. Если ошибка сервера не возникает, значит, у вас почти наверняка действует AllowOverride None.
Только если у тебя нет добавили модуль mod_rewrite в Apache.
Вам нужно перезапустить Apache, только если вы измените какие-либо файлы Apache ".conf".
У меня такая же проблема, и кажется, что сообщение PiedPiper о AllowOverride было наиболее полезным. Проверьте свой файл httpd.conf на наличие «AllowOverride» и убедитесь, что для него установлено значение «Все».
В случае .htaccess перезапуск не требуется, если он не работает, включая возможные причины.
AllowOverride Нельзя указать, какой пользователь может установить в httpd.conf или, возможно, придется связываться с администратором сервера.
Проверьте имя файла .htaccess, он должен быть .htaccess, а не htaccess.txt, см. Здесь, как его создать.
Попробуйте использовать Options -Indexes
или deny all
вид простой директивы , чтобы увидеть , если он работает или нет.
очищать кеш браузера каждый раз, если есть правило для перенаправления или подобное, если предыдущее перенаправление кэшируется, это выглядит так, как будто что-то не работает.
LogLevel alert rewrite:trace7
. После перезапуска apache вы должны увидеть следы в error.log Надеюсь, что это поможет. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging