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

Какие данные доступа давать нанятому человеку для работы с определенным сайтом, если не хочу/боюсь сообщать свой логин-пароль?

В панели ISPManager есть раздел "FTP аккаунты", где Вы можете создавать новых ftp пользователей, редактировать их параметры, удалять, или временно отключать. При создании ftp пользователя необходимо выбрать домашнюю директорию (в которую пользователь попадает после авторизации). Если хотите дать доступ в корень одного сайта, выбирайте "директория www домена". Если Вы хотите, чтоб пользователь мог по ftp закачивать файлы в определенную директорию, то при создании ftp пользователя выбирайте в ка...

Все вопросы
Хостинг новости
Електронний документообіг
Шановні клієнти ! З метою оптимізації робочих процесів та задля збереження природи пропонуємо вам оформляти акти виконаних робіт в електронних сервісах 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