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

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

7 ответов


перезагрузка не необходима для изменения .реврайт. Что-то не так.

убедитесь, что ваш .htaccess включает в себя оператор

RewriteEngine на

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

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

RewriteLog "журналы/rewritelog"

RewriteLogLevel 7

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


нет:

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


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


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

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


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


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

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

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

  • попробуйте использовать Options -Indexes или deny all вид простой директивы, чтобы увидеть, работает ли она или нет.

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


что в вашем .реврайт? RewriteRules? Проверьте, что mod_rewrite установлен и включен.

другие вещи? Попробуйте установить AllowOverride в " все " в этом каталоге.