Всё об htaccess
- admin
- 03 декабрь 2020 12:30
- 0
- 1 016
Файл .htaccess - это файл конфигурации на уровне каталога, поддерживаемый несколькими веб-серверами, используемый для дополнительной настройки доступа к веб-сайтам, таких как перенаправление URL-адресов, сокращение URL-адресов, контроль доступа (для различных веб-страниц и файлов) и многое другое. "Точка" (точка или точка) перед именем файла делает его скрытым файлом в Unix-средах.
Сайт может иметь более одного файла .htaccess, и эти файлы помещаются внутри веб-дерева (то есть внутри каталогов и их подкаталогов), а следовательно, и другие распределенные конфигурационные файлы с их именами.
Первоначальная цель .htaccess, отраженная в его названии - обеспечение контроля доступа к каждому каталогу. Например: требовать пароля для доступа к контенту. Однако чаще всего файлы. 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.comRewriteEngine 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 байт, иначе некоторые браузеры могут подменить страницу своей стандартной.