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 (066) 412-06-21
 
 

Будет ли мне предоставлена возможность установить подкаталог, защищённый паролем?

ответ

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

все акции
  • Оплатой квитанции в кассе банка
  • Yandex Money 41001107117401
  • Visa
  • Visa Electron
 
Вопросы, ответы и статьи про хостинг

Как создать почтовые ящики и какие почтовые сервера указывать при настройке моей почтовой программы?

В панели управления есть пункт почтовые ящики. Почтовые ящики -> создать новый ящик. pop3 и IMAP сервер - mail.имя_вашего_домена.

Все вопросы
Хостинг новости
Расписание работы на праздники.
Мы работаем 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