Apache: налаштування веб-сервера, файл .htaccess

Apache: налаштування веб-сервера, файл .htaccess

1. Що таке Apache?

Веб-сервер Apache використовується у нас на хостингу як основний. Apache є основою більшості веб-серверів світу і являється найбільш розповсюдженим веб-сервером. Причинами його популярності є такі факти як легка і широка можливість конфігурації, швидкодія, підтримка всіх нині відових протоколів. Спеціально для Apache були створені версії популярних мов програмування як Perl та PHP, а також цей веб-сервер легко інтегрується з розповсюдженими СУБД як MySQL.

Користувачі нашого хостингу мають можливість власноруч редагувати конфігурації Apache за допомогою відповідних дериктив в файлі .htaccess. Таким чином можна вирішити більшість задач конфігурації веб-сервера в умовах shared-хостингу.
Для ознайомлення конфіграції Apache рекомендуємо читати документації на офіційному сайті - http://httpd.apache.org/docs/

2. Файл .htaccess.

Файл .htaccess використовується для управління веб-сервером Apache зі сторони користувача хостингу. Цей файл складається з директив, які веб-сервер аналізує і опрацьовує, виконуюючи дії відповідно до цих директив.

Файл .htaccess може бути розміщений як в кореневому каталозі так і в будь-якому його підкаталозі. Якщо файл .htaccess знаходиться в підкаталозі, то його директиви перекривають директиви файлу, який знаходиться в каталозі вище. Зміни файлу вступають у дію відразу ж, тому що при кожному звернені веб-сервер перечитує його зміст.

Зверніть увагу, що на початку назви файлу стоїть крапка, яку опускати не можна. В unix-подібних системах це означає, що файл є прихованим.

Якщо використання деякої директиви призвело до появи помилок або просто збою роботи сайту, наймовірніше ви прописали інструкцію, яка заборонена в умавах shared-хостингу. В такому випадку зверніться до support@hvosting.ua і ми спробуємо вирішити вашу проблему.

3.Приклад використання директив

3.1.Перевизначення кодування html-документу

Якщо вам потрібно, щоб веб-сервер "віддавав" всі html-документи в кодуванні koi8-r, а не в windows-1251(cp1251), як це сервер робить за замовчуванням, то потрібно у файл .htaccess помістити наступну інструкцію:

AddType "text/html; charset=koi8-r" .html .htm .shtml

Якщо на вашому ресурсі існують html-документи в різних кодуваннях (ISO-8859-1, Windows-1250, Windows-1252, UTF-8), то вам, можливо, буде необхідно примусово відключить видачу заголовка з кодуванням windows-1251. Для цього треба прописати наступну директиву:

AddDefaultCharset Off

Але в такому випадку відповідне кодування має бути прописаним на кожній html-сторінці у вигляді тега

<http-equiv="Content-type" content="text/html; charset=windows-1251" />

3.2. Захист директорії паролем

Бувають ситуації, коли директорію потрібно захистити від небажаних відвідувачів, наприклад адміністративну частину сайту. Це штатна ситуація, яку вирішується за допомогою файлу .htaccess.
В каталозі, доступ до якого ви хочете обмежити до файлу .htaccess (якщо його немає, то створюємо) додаємо наступні інструкції:

AuthType Basic
AuthName "Some Name"
AuthUserFile /home/example/data/.htpasswd
require valid-user

Шлях /home/example/data/.htpasswd є повним шляхом до файлу паролів на диску вашого серверу. Якщо ви, наприклад, помістите файл .htpasswd в домашній каталог, куди ви потрапляєте, заходячи по фтп, то шлях до файлу матиме саме вище вказаний шлях, де замість example має бути ваш хостинг-аккаунт.

Отже, в директиві AuthUserFile ми вказуємо абсолютний шлях до файлу .htpasswd, який містить логіни і паролі. Якщо ви створюєте файл .htaccess на своєму локальному комп'ютері, а не на нашому сервері, то передавати його по FTP обов'язково потрібно в текстовому (ASCII) режимі.

Файл .htpasswd зберігає дані рядками у вигляді: login:password. Пароль має бути зашифрованим з використанням алгоритму MD5. Один з варіантів створити такий файл - скористуватися програмою, яка входить в дистрибутив Apache - htpasswd.

Розглянемо приклади використання ціє команди в unix shell.

htpasswd -m .htpasswd user

Ця команда запитає у вас пароль і після цього внесе дані до файлу. Якщо файл .htpasswd ще не був створений, то потрібно додати ключ -c, але будьте обережні, якщо файл вже був створений, а ви використали цей ключ, то файл перепишеться. Тобто маємо команду:

htpasswd -mc .htpasswd user

3.3. Індексний файл.

Індексний файл - це той файл, який відкривається за замовчуванням при звертанні клієнта до каталогу, а не до конкретного файлу. Наприклад, клієнт набере в браузері наступну URL-адресу: http://example.in.ua/ чи http://example.in.ua/admin , де в першому випадку звертання йде до каталогу сайту, а в другому - до каталогу admin, який знаходиться безпосередньо в каталозі сайту, тобто файл в запиті не вказано. В такому випадку буде запущено на виконання індекний файл, результат його виконання й буде відправлено клієнту на його запит.
За замовчуванням індесним файлом є: index.html, index.htm, index.php, index.php3, index.phtml, index.shtml, default.htm або default.html. Але якщо у вас є бажання його перевизначити, наприклад на myindex.php, то вам в файлі .htaccess необхідно прописати наступну директиву (інструкцію):

DirectoryIndex myindex.php

3.4. Заборона та дозвіл лістингу файлів.

Бувають випадки, коли потрібно виводити список файлів в папці за відсутності визначення індесного файлу. Для цього достатньо прописати в .htaccess наступну інструкцію:

Options +Indexes

Цю інструкцію потрібно написати саме в тій папці, в якій ви плануєте дозволити лістинг. Дана інстуркція також буде дійсна для всіх підкаталогів, якщо у підкаталозі потрібно вимкнути лістинг, потрібно прописати інструкцію

Options -Indexes

Варто відмітити, що остання інструкція є за замовчуванням, якщо в директорії вище не зазначено протилежного. Коли ввімкнена опція -Indexes і індексний файл не вказаний сервер видає HTTP помилку 403.

3.5. Власні сторінки помилок.

Іноді відвідувачі вашого сайту запитують такі сторінки, яких на сервері немає по різноманітним причинам: чи то їхнє посилання не правильне, чи файли дійсно було помилково видалено. В такому випадку сервер видає наступну відповідь:

1.png

Але .htaccess надає альтернативу цим сторінкам.

3.6. Відмова в доступі певним IP-адресам.

Коли виникає необхідність заборонити доступ до сайту, або його частини, для певних IP-адресів пишемо наступні директиви:

Order Allow,Deny
Allow from All
Deny from 172.16.16.16

Тут відмовлюємо в доступі 172.16.16.16. Якщо буде здійснений запит з цієї адреси у відповідь сервер видасть 403 помилку або відповідну цій помилці вашу сторінку.

Якщо ви напишете адресу 172.16.16, то це означає заборонити доступ для всієї підмережі 172.16.16/24.

3.7. Відмова в доступі до певних файлів.

Також іноді виникає необхідність заборонити доступ до деяких файлів, наприклад до конфігураційних файлів, яка містять реквізити доступу до баз даних, інтерфейсів тощо. Нехай такий файл у вас config.cfg, тоді пишемо наступне:

<FilesMatch "\.(cfg)$">
Order allow,deny
Deny from all
</FilesMatch>

Тепер на запит цього файлу сервер відповість 403 помилкою або відповідною цій помилці вашою сторінкою.

3.8 Заголовок last-modified

Виникають ситуації коли потрібно, щоб веб-сервер видавав HTTP-заголовок Last-Modified. Наприклад, при реєстрації вашого ресурсу на Яндексі, виникає помилка "Неправильні дати". Для статистичних документів сервер буде видавати значення last-modified завжди. Це діє на html-файли. Для SSI cервер буде видавати значення last-modified лише тоді, коли прописана директива «XBitHack full» (просто пропишіть цей рядок в .htaccess), і для файлу, до якого звертаються виставіть права на виконання для групи. В скріптах last-modified видається іншими методами. Наприклад, враховуючи динамічне генерування коду php-скріптом, то логічно в якості last-modified віддавати поточну дату і час. Ось приклад реалізації:

<? header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); ?>

Варто звернути увагу на те, що команда header в обов'язковому порядку має виконуватись в скріпті до того, як скріпт почне видавати html-текст в браузер користувача.

3.9. Створення переадресації.

Якщо у вас є домени (необов'язково, щоб вони хостились разом) domain1.tld та domain2.tld, і вам потрібно, щоб при звертанні до domain2.tld відбувалось перенаправлення, то пропишіть наступне для домену domain2.tld:

Redirect 301 / http://domain1.tld/



*налаштування вказані для показового домену example.in.ua на сервері h56.hvosting.ua (аккаунт під назвою example), при роботі з хостингом використовуйте свої дані.


 
Укр | Рос

Український хостинг сайтів, аренда серверів, реєстрація доменних імен

 
Подзвонити нам
Служба підтримки
support@hvosting.ua
+38 (044) 337-57-89
+38 (068) 304-43-64
+38 (063) 849-75-78
+38 (098) 213-96-12
+38 (050) 903-99-59
 
 

Ваш сайт збільшуеться і йому потрібно більше місця під пошту, бази данних та файли?

всі акції

Ваш сайт збільшуеться і йому потрібно більше місця під пошту, бази данних та файли?

всі акції
  • Оплатою квитанції в касі банку
  • Liqpay
  • Privat24
  • Visa/mastercard
 
Питання, відповіді та статті про хостинг

Залив на сервер сайт, він якись покалічений, картинок не видно.

Причин може бути досить багато. Спершу, варто з'ясувати, яку саме помилку отримуємо. Потрібно кликнути правою кнопкою на яку-небудь картинку (точніше місці, де вона має бути), для Opera - копіювати адресу малюнка IE - вибрати пункт "властивості", натиснути Ctrl і кликнути на адресі малюнка в його властивостях. Потім скопіювати цю адресу (CTRL-C), і спробуйте вставити цю адресу в окреме вікно броузера. Якщо видало помилку 403 (доступ заборонений), означає щось не в порядку з "правами доступу д...

Всі питання
Хостинг новини
Акція kharkiv.ua !
Харків говорить українською ! Переходь на український домен - ваше_ім'я.kharkiv.ua - і отримай домен за половину вартості ! Замовляй домен тут: https://hvosting.ua/domains.html Вартість домена kharkiv.ua - всього 185 грн !!! Увага! Ця доменна зона - синонімічна, тобто зареєструвати домен .kharkiv.ua з аналогічним словом може тільки поточний власник домена .kharkov.ua Наприклад: hvosting.kharkov.ua ===> hvosting.kharkiv.ua

Видалення доменів
Повідомляємо, що з 01.11.2023 починається процес остаточного видалення доменних імен, які зберігалися в реєстрі з початку повномасштабного вторгнення (24.02.2022) до 1.05.2023 Після видалення ці доменні імена будуть доступні для реєстрації будь-кому за принципом: перший прийшов - перший отримав. До 31.10.2023 включно реєстранти мають можливість відновити свої доменні імена з redemption period`у! Не втрачайте свої домени !

Акція KYIV.UA
Переходь на український домен - ваше_ім'я.kyiv.ua - і отримай домен за половину вартості ! Тому що: Kyiv - НЕ Kiev ! Замовляй домен тут: https://hvosting.ua/domains.html Вартість домена kyiv.ua - всього 180 грн !!! Увага! ця доменна зона - синонімічна, тобто зареєструвати домен .kyiv.ua з аналогічним словом може тільки поточний власник домена kiev.ua Наприклад: hvosting.kiev.ua ===> hvosting.kyiv.ua

Зміна умов відновлення доменів із стану RedeptionPeriod з 01.05.2023
Повернення умов реєстрації доменів. З 1.05.2023 RedeptionPeriod становитиме 30 днів в реєстрах Хостмайстер.

Оплата через термінали Ibox
Друзі, ми додали ще один спосіб оплати хостингу та доменів: термінали Ibox. Як оплатити БЕЗ комісії ...

З Днем Незалежності, моя Україно!
Добра Бажаю, друзі вам сповна, Тепла і затишку у дім І перемоги нам усім! Нехай в житті вам пощастить, Дарує радість навіть мить, Весніє на душі розмай І мирним буде небокрай!

Збереження даних на VPS
Після численних звернень клієнтів ми запровадили нову послугу: за символічну оплату ми збережемо дані вимкненого VPS на обраний вами строк від 3 до 12 місяців: дані не будуь видалені після закінчення періода оплати та відключення сервера . У подальшому клієнт зможе без проблем відновити нормальну роботу свого сервера. Для отримання цієї послуги прохання звертатися: office@hvosting.ua

Архів RSS