.htaccess
Материал из Википедии — свободной энциклопедии
.htaccess — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т. д, без изменения главного конфигурационного файла.
.htaccess является подобием httpd.conf с той разницей, что действует только на каталог, в котором располагается, и на его дочерние каталоги. Возможность использования .htaccess в том или ином каталоге указывается в httpd.conf.
Файл .htaccess может быть размещён в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов .htaccess). Для того чтобы эти файлы .htaccess можно было использовать, необходимы соответствующие настройки главного конфигурационного файла (значение директивы AllowOverride должно быть установлено All). Как правило, подавляющее большинство хостеров разрешают использовать настройки в файле .htaccess.
Пути к файлам и каталогам должны указываться от корня сервера, например, /pub/home/server/html/
Содержание |
[править] Директивы .htaccess
[править] Перенаправление (редирект)
[править] На другой адрес
Redirect /index.php http://example.com/index.php
[править] При запросе определённых страниц
redirect /data http://www.example.com/data redirect /forum http://forum.example.com
[править] По маске имени файла
Следующая строки определяют, что все запросы, кроме запросов к файлам с расширениями .gif и .jpg, будут перенаправлены на файл index.php
RewriteEngine On RewriteRule !.(gif|jpg)$ index.php
Работает только при наличии mod_rewrite.
[править] По IP-адресам
Если посетитель имеет IP-адрес 192.168.11.1, то ему будет открыта страница data.html
SetEnvIf REMOTE_ADDR 192.168.11.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /data.html
Если посетители имеют IP-адреса 192.168.11.1 и 192.168.11.2, то им будет открыт адрес http://example.com
RewriteEngine on
RewriteCond %{REMOTE_ADDR} (192.168.11.1|192.168.11.2)
RewriteRule .* http://example.com [R=301,L]
Работает только при наличии mod_rewrite
[править] В зависимости от реферера (ссылающейся страницы)
RewriteCond %{HTTP_REFERER} http://example.com
RewriteRule ^/original.html$ /another.html [L]
В данном случае все посетители пришедшие с сайта example.com вместо файла original.html получат файл another.html
[править] Удаление префикса «www.» из адреса
Перенаправление с http://www.mydomain.com на http://mydomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC]
RewriteRule (.*) http://mydomain.com/$1 [R=301]
Работает только при наличии mod_rewrite
[править] Индексные страницы
[править] Переопределение индексного файла
DirectoryIndex index.html index.php index.shtml
[править] Запрет на отображение содержимого каталога при отсутствии индексного файла
Options -Indexes
[править] Типы файлов
[править] Изменение обработчика по типу файла
Пример переопределения HTML файлов для обработки их с помощью PHP
RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html .phtml
[править] Обработка ошибок
ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 /500.html
При этом размер конечного файла должен быть больше 515 байт, иначе некоторые браузеры могут подменить страницу своей стандартной
[править] Кодировка
[править] Отдаваемых файлов
AddDefaultCharset windows-1251
[править] Загружаемых файлов
CharsetSourceEnc windows-1251
[править] Отдаваемых файлов конкретного типа
AddCharset windows-1251 .js
вместо .js можно указать несколько типов файлов, разделяя их пробелами.
[править] Управление доступом
[править] Запрет доступа к файлам
- Запрет доступа ко всем файлам и каталогам в текущем каталоге
deny from all
- Запрет доступа к определённому файлу
<Files config.php> deny from all </Files>
- Запрет доступа к файлам по маске
<Files *.inc> deny from all </Files>
Спецсимволы для определения маски
? - любой одиночный символ * - любая последовательность символов, исключая символ / (слэш)
- Запрет доступа к файлам по регулярному выражению
<Files ~ "\.(inc|conf|cfg)$"> deny from all </Files>
[править] Определение доступа по IP
order deny,allow deny from all allow from 192.168.11.1
Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 192.168.11.1.
Order Allow,Deny Allow from all Deny from 192.140.170.219 Deny from 10.10.220.201
В этом примере наоборот запрещается доступ с определёнными IP-адресами.
[править] Закрытие каталогов паролем
файл .htaccess
AuthName "Auth message" AuthType Basic require <valid-user | user <username1> [username2] ... [usernameN]> AuthUserFile "/full/path/to/.htpasswd"
Пароли хранятся в файле .htpasswd
[править] Ссылки
- Документация Apache по файлам .htaccess
- FAQ по файлу .htaccess с примерами
- Примеры mod_rewrite
- Обработка ошибок — генератор .htaccess
- Практические решения по использованию .htaccess
- 301 редирект с использованием .htaccess
| Это незавершённая статья о программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |

