Tuesday, June 7, 2011

Не працює .htaccess

Чому може не працювати .htaccess?
Є декілька причин за яких він може не працювати:
  • система навіть не задумується про те що такий файл є
  • помилки в самому файлі .htaccess
Про те як має виглядати об'єкт дискусії я розказувати не буду адже матеріалу на дану тему вистачає. Я хочу звернути увагу на файли конфігурацій і те що в них має бути аби даний файл виконував своє призначення, а також свій випадок по якому я нічого не знайшов в гуглі.
Поїхали!
Є такий файл як httpd.conf який містять інформацію про конфігурації сервера. Даний файл не є секретний і його можна як завантажити так і найти різні приклади його виконання (гугл рулить). Але для того щоб працював .htaccess потрібно щоб були в даному файлі конфігурації певні пункти.
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

 
 
Blogger Templates