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) 222-57-89
+38 (068) 304-43-64
+38 (063) 849-75-78
+38 (098) 213-96-12
+38 (050) 903-99-59
 
 

Чи буде мені надана можливість встановити підкаталог, захищений паролем?

відповідь

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

всі акції
  • Оплатою квитанції в касі банку
  • Yandex Money 41001107117401
  • Visa
  • Visa Electron
 
Питання, відповіді та статті про хостинг

У мене при переїзді до вас на хостинг на сайті полетіло кодування!

Причин може бути 2: Перша - для вашого сайту потрібно примусово вказувати кодування html-контента, браузер не може коректно визначити кодування в автоматичному режимі. Www-домені -> Параметри WWW домена -> Кодування. Друга причина полягає в корінних змінах між mysql 4.0 і 4.1. Починаючи з Mysql 4.1 дані можуть передаватися в одному кодуванні, зберігається на диску в другому, порівнюватися в третьому, а результат може видаватися в четвертому. Інколи бувають ситуації, на розбирання з якими в...

Всі питання
Хостинг новини
Електронний документообіг
Шановні клієнти ! З метою оптимізації робочих процесів та задля збереження природи пропонуємо вам оформляти акти виконаних робіт в електронних сервісах paperless.com.ua та vchasno.ua Наш мейл там - billing@hvosting.ua

У нас нова доменна акція:
com.ua - реєстрація і подовження - всього 190 грн на рік ! Поспішайте - найкращі домени куплять одразу :-) Акція відбувається з 15 липня по 15 серпня 2019. Замовити домен: https://hvosting.ua/domains.html

Розклад роботи на свята.
Ми працюємо 24-25 і 30-31 грудня, а також 1 і 6-7 січня тільки в поштовому режимі. В інші дні - звичайний режим роботи. Ми завжди на зв'язку по е-майл - навіть в новорічну ніч! :-)

Зміна цін на домени.
З 01 11 відбудеться планове коригування цін на домени відповідно до курсу валют. Ви можете прямо сьогодні продовжити і зареєструвати домени за старою ціною - поспішайте!

Розклад роботи
Дорога Україно, вітаємо тебе з днем Конституції і повідомляємо, що Hvosting.ua працює завжди, без вихідних: 28 червня-1 липня - в поштовому режимі. З 02 липня - прийом дзвінків як зазвичай.

Новий номер київского телефона.
Відтепер наш київський номер запам’ятати просто: 222-5789

Поздоровляємо всіх зі святом весни !
Бажаємо тепла та посмішок.Як ми працюємо на вихідних: ми на місті, обробляємо ваші заявки в поштовому режимі з 8 по 11 березня. З 12 березня - в звичайному режимі.

Архів RSS