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
 
 

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

відповідь

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

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

Як забезпечити плавний переїзд динамічного ресурсу (форуму) без перерви в обслуговуванні і без втрати частини повідомлень.

Для цього потрібно: 1. отримати на новому місці хостинг аккаунт. створити в ньому базу даних, залити файли, базу, створити поштові скриньки (якщо пошта також переїжджає) 2. перевірити що все на новому акаунті нормально працює і коректно відкривається. 3. в. htaccess на новому сервері зробити переадресацію на ваш сайт без www наприклад якщо ваш сайт mysite.com то. htaccess виглядає так RewriteEngine ON RewriteRule (.*) http://mysite.com/ $ 1 4. У DNS розгорнути на нову ip адресу www.my...

Всі питання
Хостинг новини
При переносі будь-якого домена до нас на обслуговування, Ви отримаєте у подарунок хостинг за тарифом Site, строком на 1 рік.*
При переносі будь-якого домена до нас на обслуговування, Ви отримаєте у подарунок хостинг за тарифом Site, строком на 1 рік.* Умови отримання хостингу:

Підвищення цін на послуги з 01.10.2021
Важливе повідомлення: ми трималися з 2015 року - саме стільки ми не підвищували, а часто навіть й знижували ціни, але, нажаль, вимушені це змінити: з 01.10.2021 ми підвищуємо ціни на послуги. Але до цієї дати у вас ще є можливість продовжити будь-яку послугу, на будь-який період за старою вартістю. А також ви можете придбати нові послуги за старою ціною - до 01.10.2021 !

Підвищення цін на домен .com з 1 вересня 2021 на 15%
Нажаль, вимушені це зробити - оскільки ціни підвищують також і для реєстраторів. Але пока що ви можете зареєструвати або продовжити домен всього за 290 грн! Поспішайте!

Новий номер телефону
З 28 червня маємо новий київський номер: (044) 337-57-89 Також повідомляємо, що 28 06 2021 ми працюємо в поштовому режимі. З 29 06 - у звичайному! Всіх з днем Конституції України!!!

Підтримка PHP8
Додана підтримка PHP8 на серверах під ISPMGR5. Офіційний реліз PHP8: https://www.php.net/releases/8.0/ru.php

Свята наближаються !
Розклад роботи Шановні друзі! Команда Hvosting.ua вітає вас з прийдешніми святами Різдва та Нового року! В святкові дні ми працюємо в e-mail режимі: 31.12-03.01 та 07.01-10.01 В ці дні всі ваші звернення в обробляються в поштовому режимі. 04.01-06.01 ми приймаємо Ваші телефонні звернення. З 11 01 ми працюємо за звичайним розкладом. Щасливого Нового Року та Різдва !

Новорічні акції
Шановні клієнти! Нарешті:)) добігає кінця нелегкий 2020-й рік. Всі ми пройшли і проходимо через складні випробування, але віримо і сподіваємось на краще в новому, 2021 році. Команда Hvosting.ua щиро вітає вас зі святами і бажає здоров'я та здійснення всіх планів та мрій ! Ми маємо для вас цікаві пропозиції та акції:

Архів RSS