Введите какое-нибудь нежелательное значение в ваше, .htaccess
например foo bar
, sakjnaskljdnas
любое ключевое слово, не распознаваемое htaccess, и посетите свой URL. Если он работает, вы должны получить
внутренняя ошибка сервера 500
Внутренняя ошибка сервера
Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос ....
Предлагаю сразу же поставить RewriteEngine on
.
Поскольку вы на своей машине. Я предполагаю, что у вас есть доступ к .conf
файлу apache .
откройте .conf
файл и найдите строку, похожую на:
LoadModule rewrite_module modules/mod_rewrite.so
Если он закомментирован (#), раскомментируйте и перезапустите apache.
В журнал переписать
RewriteEngine On
RewriteLog "/path/to/rewrite.log"
RewriteLogLevel 9
Поместите указанные выше 3 строки в свой virtualhost
. перезапустите httpd.
RewriteLogLevel 9
Использование высокого значения для уровня значительно замедлит работу вашего сервера Apache! Используйте файл журнала перезаписи на уровне выше 2 только для отладки! Уровень 9 регистрирует почти каждую деталь журнала перезаписи.
ОБНОВИТЬ
В Apache 2.4 все изменилось:
С Обновление до 2.4 с 2.2
В RewriteLog и RewriteLogLevel директивы были удалены. Эта функциональность теперь предоставляется путем настройки соответствующего уровня ведения журнала для модуля mod_rewrite с помощью директивы LogLevel . См. Также раздел ведения журнала mod_rewrite.
Дополнительные сведения о LogLevel см. В Директиве LogLevel.
вы можете выполнить
RewriteLog "/path/to/rewrite.log"
таким образом сейчас
LogLevel debug rewrite_module:debug
Ответ «Введите какое-то нежелательное значение» не помог мне, мой сайт продолжал загружаться, несмотря на введенный мусор.
Вместо этого я добавил следующую строку в начало файла .htaccess:
Это быстро сообщит вам, перехватывается ли .htaccess или нет. Если используется .htaccess, файлы в этой папке вообще не загружаются.
источник
Обычно любое изменение в .htaccess должно иметь видимые последствия. Если эффекта нет, проверьте файлы конфигурации apache, например:
Следует изменить на
И вы сможете изменять директивы в файлах .htaccess.
источник
Возможно, более логичным методом было бы создать файл (например, test.html), добавить контент, а затем попытаться установить его в качестве страницы индекса:
По большей части правило .htaccess переопределяет конфигурацию Apache, где работает на уровне каталога / файла.
источник
Чтобы ответить на первый из трех заданных вопросов, простой способ проверить, работает ли файл .htaccess или нет, - это вызвать пользовательскую ошибку в верхней части файла .htaccess:
Что касается вашего второго вопроса, если файл .htaccess не читается, возможно, что основная конфигурация сервера Apache
AllowOverride
установлена наNone
. В документации Apache есть советы по устранению неполадок для этого и других случаев, которые могут препятствовать вступлению в силу .htaccess.Наконец, чтобы ответить на ваш третий вопрос, если вам нужно отладить определенные переменные, на которые вы ссылаетесь в своем правиле перезаписи или используете выражение, которое вы хотите оценить независимо от правила, вы можете сделать следующее:
Выведите переменную, на которую вы ссылаетесь, чтобы убедиться, что она имеет ожидаемое значение:
Проверьте выражение независимо друг от друга, поместив его в
<If>
директиве. Это позволяет вам убедиться, что ваше выражение написано правильно или соответствует, когда вы ожидаете:Удачной отладки .htaccess!
источник
Если у вас есть доступ к каталогу bin apache, который вы можете использовать,
httpd -M
чтобы сначала проверить загруженные модули.После этого простые директивы, такие как
Options -Indexes
илиdeny from all
, подтвердят, что .htaccess работает правильно.источник
Чтобы проверить свои правила перезаписи htaccess, просто введите URL-адрес, к которому вы применяете правила, поместите содержимое вашего htaccess в большую область ввода и нажмите кнопку «Проверить».
http://htaccess.mwl.be/
источник
Почему бы не поместить мусор в файл .htaccess и не попробовать перезагрузить apache. Если apache не запускается, вы знаете, что он работает. Удалите мусор, затем перезагрузите apache, если он загружает правильно настроенный вами .htaccess.
источник