Что такое .htaccess?

Ромчик
0

Использование htaccessДоброго времени суток. В данном посте мы остановимся на рассмотрении файла конфигурации apache .htaccess. В статье мы рассмотрим для чего нужен файл .htaccess, для чего целесообразней использовать данный файл, приведем несколько типичных примеров использования файла .htaccess. На написание данного поста меня сподвиг тот факт, что это самый распространенный файл на web сервере, практически на каждом web-сервере под управлением apache есть файл .htaccess и в то же время данный файл является самым непонятным для многих пользователей услуги web-хостинга. И так, давайте рассмотрим, что же такое и за что отвечает файл .htaccess.

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

Файл .htaccess является децентрализованным файлом конфигурации сервера apache. Т.е. правила описанные данным файлом распространяются только на тот каталог и подкаталоги этого каталога  в котором находиться файл .htaccess. Таким образом, если мы поместим файл .htaccess в корне нашего сервера, то его правила будут распространяться на все каталоги сервера, кроме тех каталогов, в которых есть собственный файл .htaccess.
Т.к. файл .htaccess является служебным файлом, то он не доступен веб-пользователю из браузера. Хотя это можно переопределить основным конфигурационным файлом сервера httpd.conf.
Как я уже говорил выше, что .htaccess является локальным конфигурационным файлом веб сервера apache, то и синтаксис его повторяет синтаксис основного конфигурационного файла.

Возможности .htaccess

Давайте приведем список основных возможностей данного файла:

  1. открыть или закрыть доступ к каталогу или подкаталогам без индексного файла
  2. создать правила перезаписи URL
  3. редирект
  4. ограничение доступа по логину и паролю к каталогам и файлам
  5. открыть или закрыть доступ с определенных ip адресов
  6. управлять роботами — пауками поисковых систем на сайте
  7. менять кодировку страницы
  8. запретить или настроить кеширование страниц

и многое другое.

Целесообразность использования файла .htaccess

Данный файл имеет огромное количество достоинств, например, файл apache .htaccess перечитывается каждый раз при обращении к серверу, то внесенные изменения тут же вступают в силу. Но из этого преимущества вытекает и один существенный недостаток, т.к. данный файл обрабатывается при каждом обращении к серверу — он существенно снижает производительность веб-сервера apache. Поэтому не злоупотребляйте настройками .htaccess и что возможно сделать в общем конфигурационном файле делайте.
А теперь давайте рассмотрим для чего лучше всего использовать .htaccess:

  1. Перенаправление с кодом 301.

Очень часто приходиться перемещать контент и для того, чтобы не потерять позиции в поисковых системах делают перенаправление с кодом 301. Более подробно о кодах ответа веб сервера Вы можете прочитать в моей статье “HTTP коды — ответы http сервера” ( https://web-programming.com.ua/http-kody-otvety-http-servera/ )

Redirect 301 http://domain.com/old-permalink-here/ http://domain.com/new-permalink-here/

 

 

  1. Ограничение доступа к определенным каталогам и файлам.

Для этого используется еще один файл .htpasswd. Пример, ограничение доступа по логину и паролю ко всем zip-архивам:

<FilesMatch "\.zip$">
AuthName "Only valid users can download zip files."
AuthType Basic
AuthUserFile /home/www/mysite/pas/.htpasswd
Require valid-user
</ FilesMatch >

А содержание файла .htpasswd, который находится в каталоге pas нашего сайт mysite:

Root:RoU9yc57nPeKM

где логин — Root, а пароль зашифрован — RoU9yc57nPeKM, что соответствует 12345

 

  1. Указание файла, который будет выводиться при ошибке 404, т.е. запрашиваемая

страница не найдена.

ErrorDocument 404 http://mysite/error/404.html

 

 

  1. Склейка двух доменов.

Как правило сайты имеют два домена www.mysite (перед доменном ставить www сложилось еще на заре зарождения интернет) и просто mysite, но для поисковых систем это два разных сайта с вытекающими отсюда последствиями и для того, чтобы склеить эти два домена используют следующую структуру:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\mysite [NC]
RewriteRule ^(.*)$ http://mysite/$1 [R=301,L]

Примеры использования .htaccess

Для того, чтобы web-сервер начал использовать файл .htaccess нужно его сконфигурировать для этого. Директива AllowOverride перечисляет опции, которые могут быть изменены с помощью файла .htaccess. Рассмотрим часть конфигурации файла httpd.conf:

<Directory "/">
Options Indexes FollowSymLinks Includes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

где директива AllowOverride может принимать следующие значения:

 

  1. None — сервер игнорирует (не читает) файлы .htaccess
  2. Аll — позволяет с помощью .htaccess переопределить все глобальные установки доступа
  3. Filelnfo — разрешает переопределение опций управляющих типами документа (кодировка, язык, типы файлов)
  4. AuthConfig — переопределение опций разрешений
  5. Limit — разрешает переопределение опций доступа (allow, deny и order)
  6. Options — разрешает использовать директиву Options.

Перенаправление пользователя с определенным браузером:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} <название агента>
RewriteRule .* http://test.mysite/ [R]

или в определенный каталог

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} <название агента>
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule .* /test/ [R]

вместо <название агента> вставляем название необходимого агента

Простой редирект

Redirect 301 / http://mysite/

Запрещение доступа ко всем файлам в директории:

deny from all

Запрещение доступа к определенному файлу, в примере запрещен файл test.php:

<Files test.php>
deny from all
</Files>

Запрещение ко всем файлам в директории для определенного ip (в примере для ip = 192.168.1.1):

order deny,allow
allow from all
deny from 192.168.1.1

Определение кодировки (варианты кодировки KOI8-R, UTF-8, Windows-1251):

AddDefaultCharset windows-1251

Закрываем доступ к сайту в рабочее время

RewriteCond %{TIME_HOUR}%{TIME_MIN} >1000
RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900
RewriteRule .* - [ F ]

Заключение

И так мы видим, что .htaccess является мощным инструментом для конфигурации http сервера. Без .htaccess мы не сможем создать так, называемые ЧПУ. С помощью данного файла мы можем уведомить пользователей и поисковые системы о старых ссылках, что позволяет улучшить индексацию Вашего ресурса, также мы можем ограничить доступ к нашему ресурсу по времени или защитить файлы от скачивания, создать доступ по логину и паролю к определенным каталогам и файлам.

 

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

©2012-2017 По всем вопросам обращайтесь через форму обратной связи

Яндекс.Метрика