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

Могу ли я переправлять всю электронную почту с моего домена на один электронный почтовый адрес?

Да, можете. В панели управления пункт почтовые домены, параметры домена, действие по умолчанию для домена. Это действие выполняется в случае, если ящик-адресат не существует. Возможны такие действия: сообщить об ошибке (нет такого ящика) игнорировать и удалить, переслать на такой же ящик на другом вашем почтовом домене, и наконец - переслать на определенный email.

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