Чому може не працювати .htaccess?
Є декілька причин за яких він може не працювати:
- система навіть не задумується про те що такий файл є
- помилки в самому файлі .htaccess
Поїхали!
Є такий файл як httpd.conf який містять інформацію про конфігурації сервера. Даний файл не є секретний і його можна як завантажити так і найти різні приклади його виконання (гугл рулить). Але для того щоб працював .htaccess потрібно щоб були в даному файлі конфігурації певні пункти.
AccessFileName - ім'я файлу в якому будуть зберігатись команди керування доступу та інші... Має мати наступний вигляд:
AccessFileName - ім'я файлу в якому будуть зберігатись команди керування доступу та інші... Має мати наступний вигляд:
AccessFileName .htaccess
AllowOverride - дана директива може бути встановлена в None, але нам потрібно щоб там було All, також ця директива розміщується в тегах Directory з вказаним шляхом до каталогу вашого веб ресурсу, в моєму випадку це має такий вигляд: <Directory "/var/www/">#вказуєте свій шлях
AllowOverride All
#можуть міститись ще і інші директиви
#Order allow,deny
#allow from all
</Directory>
Але не в моєму випадку, а це Ubuntu 10.04 і Apache2. Прикол виявився в тому що в мене був порожні файл httpd.conf і мої вставки різних директив в плоть до заміни цілого файлу іншим повноцінним файлом конфігурації нічого не давав крім помилок. Коли я все ніби виправив і помилок не було, та і директиви які потрібні встановив, однак роботи від .htaccess ніякої не дочекався і признаків присутності також.
В чому була зарита собака? ...
Порожнього файлу httpd.conf не потрібно лякатися, оскільки в деяких випадках він може бути присутній для сумісності і красоти)) В такому випадку налаштування зберігаються в файлі apacheX.conf (X - в моєму випадку 2) і просто потрібно необхідні директиви заносити туди, а моя порада - перед тим як заносити в даний файл якісь зміни перегляньте інші файли конфігурацій які можуть підключатись саме в файлі apacheX.conf (в самому низу) і має такий вигляд:
# Include generic snippets of statements
Include /etc/apache2/conf.d/
# Include the virtual host configurations:
Include /etc/apache2/sites-available/
саме в виділеному каталозі в моєму випадку це був файл "default" в якому і були вже прописані необхідні директиви для .htaccess, але не робочі, тобто - "AllowOverride None".
А за рахунок того що дані настройки ішли після моїх і перекривали їх і не працював файл .htaccess. Тож будьте обачні...
Це моя перша стаття, тож не судіть строго!
Будуть питання, задавайте, відповім з радістю!
No comments:
Post a Comment