Я перемістив свої файли .htaccess на сервери виробництва, але вони не працюють. Чи буде перезавантаження наступним кроком, чи слід перевірити щось інше.
Я перемістив свої файли .htaccess на сервери виробництва, але вони не працюють. Чи буде перезавантаження наступним кроком, чи слід перевірити щось інше.
Відповіді:
Перезавантаження не є змін у .htaccess потрібен. Щось інше не так.
Переконайтеся, що ваш .htaccess включає заяву
ПерепишітьEngine на
що потрібно, навіть якщо він також присутній у httpd.conf. Також переконайтеся, що .htaccess читається процесом httpd.
Перевірте файл error_log - він повідомить вам про будь-які помилки в .htaccess, якщо він використовується. Введення навмисної синтаксичної помилки.
Нарешті, ви можете увімкнути журнал перезапису, скориставшись такими командами, як у наступному, у своєму httpd.conf:
RewriteLog "журнали / переписати"
ПерепишітьLogLevel 7
Згенерований таким чином файл журналу надасть вам детальну інформацію про відповідність правил перезапису та як вони оброблялися.
Ні :
Apache дозволяє децентралізувати управління конфігурацією за допомогою спеціальних файлів, розміщених всередині веб-дерева. Зазвичай викликуються спеціальні файли
.htaccess
, але будь-яке ім'я може бути вказане в директиві AccessFileName ... Оскільки файли .htaccess читаються на кожен запит, зміни, внесені в ці файли, набирають негайної сили ...
З документації на апаш: Найчастіше проблема полягає в тому, що AllowOverride не встановлений таким чином, щоб ваші директиви щодо налаштування виконувались. Переконайтесь, що у вас немає дій AllowOverride None для області файлу, про яку йдеться. Хороший тест для цього - помістити сміття у свій .htaccess файл та перезавантажити. Якщо помилка сервера не генерується, ви майже напевно маєте дію AllowOverride None.
Тільки якщо ви цього не зробили додали модуль mod_rewrite до Apache.
Вам потрібно перезапустити Apache, лише якщо ви зміните будь-які файли Apache ".conf".
У мене є те саме питання, і, здається, повідомлення PiedPiper про AllowOverride були найбільш корисними. Перевірте свій файл httpd.conf на "AllowOverride" і переконайтесь, що для нього встановлено значення Усі.
У разі .htaccess перезапуск не потрібен, якщо він не працює, включайте ймовірні причини.
AllowOverride Не може бути встановлено, який користувач може встановити всередині httpd.conf або, можливо, доведеться зв’язатися з адміністратором сервера.
Перевірте ім'я файлу .htaccess, воно повинно бути .htaccess not 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