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
 
Вопросы, ответы и статьи про хостинг

Яка версія PHP використовується на вашому хостінгу?

На наших серверах ви маєте можливість обирати між: 5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1 + 7.2 - 8.2 в новій панелі TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesian Slovak Czech Italian Slovenian Danish Japanese Spanish Dutch Klingon Swedish English Korean Thai Estonian Latvian Turkish ...

Все вопросы
Хостинг новости
Акція 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