Поиск:

Поиск по:

Результаты поиска по запросу «»
Найдено совпадений
По вашему запросу ничего не найдено
.
Показать еще

Несколько простых примеров использования файла .htaccess

В данной статье рассмотрено использование правил в .htaccess, которые позволяют настроить доступ и просмотр файлов, подмену индексного файла и многое другое.

Введение

Что такое файл .htaccess?

Это просто текстовый файл, содержащий набор указаний для Web-сервера.

Как правило, данный файл располагается в корневом каталоге сайта. Через инструкции, прописанные в .htaccess, можно дать необходимые указания для web-сервера. Например, с помощью файла .htaccess можно разграничить доступ к каталогам и файлам, выполнить настройку красивых адресов в адресной строке, настроить страницы ошибок, а также многое другое.

В этой статье представлено несколько полезных советов.

Внимание: перед внесением любых изменений в файл .htaccess рекомендуем сделать его резервную копию, что бы всегда можно было оперативно восстановить работу сайта в случае некорректных настроек.

1. Управление доступом к файлам и каталогам

Что бы запретить доступ ко всем файлам в конкретной директории, достаточно будет создать в ней файл .htaccess, содержащий всего одну строку:

deny from all

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

Иногда требуется, что бы доступ был возможен только с определенных ip-адресов. Реализовать это можно примерно так:

order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy

В этом примере мы сначала запрещаем доступ для всех, а потом разрешаем только для ip-адресов xxx.xxx.xxx.xxx и yyy.yyy.yyy.yyy.

Конечно, можно разрешить, например, доступ только с конкретного диапозона сети. Для этого требуется указать, как это не странно, эту самую подсеть, например так:

order deny,allow
deny from all
allow from xxx.xxx.xxx.0/24

Возможно заблокировать доступ только к определенному файлу, для этого необходимо создать следующую конструкцию:

<Files secret.jpg>
  order allow,deny
  deny from all
</Files>

Еще можно ограничить доступ к файлам определенного типа, посмотрите на следующий пример:

<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
  order allow,deny
  deny from all
</FilesMatch>

Здесь подстрока ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$" представляет собой регулярное выражение, которое буквально говорит web-серверу запретить доступ к файлам, которые имеют расширения: .htaccess, .htpasswd, .ini, .phps, .fla, .psd, .log, .sh.

Символ $ в конце регулярного выражения означает конец строки. И действительно, расширение файла как раз является завершающей частью имени этого файла. В скобках через символ вертикльной черты перечислены сами расширения, а вот точки здесь достаточно одной, зачем писать лишнее?

Если посмотреть более внимательно, то можно заметить, что правила на разрешение или запрет доступа к файлам и каталогам обернуты в теги, в данном случае это <Files ...> какие-то правила </Files> и <FilesMatch "..."> какие-то правила </FilesMatch>. В тегах указано к какой группе объектов относятся правила и по какому шаблону эти объекты необходимо выбирать.

2. Запрет на просмотр директорий

Иногда возможно зайти на какой-либо сервер и просмотреть содержимое каталога прямо через браузер. Замечательный пример, как это выглядит, доступен по адресу: http://mirror.yandex.ru/. Если необходимо запретить просмотр директории в таком виде, можно воспользоваться таким правилом:

Options All -Indexes

Или:

Options All +Indexes

Что бы разрешить просмотр содержимого.

У директивы Options есть и другие настройки. За более подробным описанием обратитесь к официальной документации

3. Скачиваем файлы без лишних вопросов

Когда требуется скачать какой-то файл с веб-сервера, то браузер показывает окно с предложением либо открыть, либо сохранить файл. Если файлы, которые размещаются на веб-сервере, совершенно точно предназначены только для скачивания, то можно через файл .htaccess установить загрузку файла операцией по умолчанию, избавив посетителей сайта от пары лишних щелчков мышью. Сделать это можно просто добавив строки:

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .ogg

4. Замена стартовой страницы сайта

Как правило, при обращении к сайту только по домену, веб-сервер рассчитывает найти файлы index.php или index.html в директории, где располагается сайт. Через файл .htaccess можно сообщить веб-серверу, что главной страницей должна являться страница с другим именем:

DirectoryIndex other_page.html

В этом правиле необходимо вместо other_page.html установить имя страницы, которую необходимо использовать страницей по-умолчанию.

5. Перенаправление на защищенное соединение HTTPS

На серверах shared-хостинга у нас поддерживается SSL, однако сертификат там является самоподписанным, поэтому при попытке зайти на сайт по протоколу https браузер сообщит, что сертификат не доверенный и попросит принять его на свой страх и риск. Этому сертификату можно доверять.

Если требуется, что бы подключение к сайту осуществлялось по https, то необходимо добавить в файл .htaccess следующие строки:

RewriteEngine On
RewriteCond %{HTTP:HTTPS} !on
RewriteRule (.*) https://mysite.ru/$1 [R=301,L]
  • Выражение RewriteCond %{HTTP:HTTPS} !on проверяет, попал ли пользователь на сайт по обычному http.
  • Выражение RewriteRule (.*) https://mysite.ru/$1 [R=301,L] выполняет переадресацию пользователя на https, если оказалось истинным предыдущее выражение, при этом устанавливается 301 редирект, а данная переадресация является последней. Можно убрать из [R=301,L] символ L, тогда будут срабатывать и последующие правила mod_rewrite.

Обратите, пожалуйста, внимание на переменную %{HTTP:HTTPS}. Для сайтов, размеющающихся на наших серверах shared-хостинга, указывать ее нужно именно в таком виде. Это обусловлено тем, что перед apache у нас обрабатывает запросы nginx, который и организует для пользователей доступность сайта по https.

В тех случаях, когда SSL-подключение организуется непосредственно с помощью веб-сервера Apache, например на VDS с панелью управления NetAngels, правила будут выглядеть так:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://mysite.ru/$1 [R=301,L]



Хостинг PHP и MySQL.

Регистрация доменов

в зонах .RU .РФ

от 200 рублей Зарегистрировать домен

SSL сертификаты

Подтверждение сайта и надежная защита

передаваемых данных

Купить сертификат

Облачные VDS

дешевле чашки кофе

Процессорных ядер: 4, Память: 4 Гб, Диск: 20 Гб SSD, Резервное копирование

от 35 р/день Заказать VDS

Все, что нужно от хостинга

Простое решение для вашего сайта

Подробнее

Хранилище данных

Храни что хочешь по смешным ценам

Почасовая оплата за размещенные данные.

Заказать хранилище