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
 
Питання, відповіді та статті про хостинг

Чи можливе використання CMS (системи управління контентом) у нас на хостингу?

Так, Ви можете використовувати практично будь-яку CMS, але Ви повинні собі чітко представляти: а) Встановлюючи типову CMS - Ви отримуєте також і типові діри в ній. Якщо оновлення (security update), що вийшло, ви не встановите вчасно - цими виявленими дірами дуже ймовірно скористаються зловмисники. б) Універсальна CMS потребує багато процесорних ресурсів. Якщо Ваш ресур почне набирати популярність, будьте готові до того, що вам доведеться або оплачувати системні ресурси, що витрачаються, або ...

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

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

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

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

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

На свята - працюємо !
З наступаючим Новим, 2018 роком, шановні клієнти! На Ваші багаточисельні запитання відповідаємо: так, ми завжди он-лайн.В святкові дні по телефону підтримки немає, але вона завжди є по мейлу support@hvosting.ua Також Ви можете зв'язуватися з нами з приводу оплати і доменів - відповідь завжди буде. Щастливого Нового Року та Різдва !

Хостинг Hvosting.ua за кордоном !
Шановні друзі ! Ми з радістю анонсуємо відкриття нового технологічного майданчику Hvosting.ua в Європі. Відтепер наші сервери будут розміщуватися також і в самому великому та найсучаснішому дата-центрі Центральної та Східної Європи - TTC Teleport (Прага, Чехія). Hvosting.ua планує розпочати розміщення клієнтських сайтів в цьому ДЦ з 01 жовтня 2017 року.

Архів RSS