Конфигурационный файл htaccess. htaccess примеры
Файл htaccess - настройка и примеры использования - 4.1 out of 5 based on 18 votes
Файл htaccess позволяет производить конфигурирование и переопределение настроек веб-сервера Apache и подобных ему серверов. С его помощью можно установить разрешения и параметры для работы сервера у определенных пользователей хостинга и даже на отдельных папках определенного пользователя.
Чаще всего его применяют для создания 301 редиректа со старых URL на новые, переназначение типов файлов, управляемый доступ к каталогом и многого другого. Благодаря файлу htaccess не нужно обращаться к основному файлу конфигураций и затрагивать работу сервера целиком.
Что собой представляет файл htaccess и для чего используется
Как уже упоминалось, htaccess используется для установки некоторых параметров серверов Apache и других серверов. Несмотря на большое и странное расширение, настройка файла.htaccess производится путем открытия и изменения его содержимого с помощью любого текстового редактора.
Файл htaccess был придуман специально для того, чтобы можно было предоставить возможность менять конфигурацию сервера каждому пользователю, затрагивая только свой собственный сайт, а не весь сервер целиком. Всем известно, что основные директивы конфигурации Apache находятся в файле httpd.conf. Однако у большинства пользователей, а если говорить о виртуальном хостинге, то у всех пользователей, нет возможности получить доступ к нему и прав на модификацию, так как это действие будет распространяться на всех.
Файл с расширением htaccess часто называют динамическим. Это обусловлено тем, что сервер должен каждый раз обращаться к нему, когда потребуется выполнить запрос к содержащему его каталогу. Пожалуй, это существенное преимущество, так как изменения, внесенные пользователем в файл, сразу вступят в силу без потребности перезагрузки сервера. В случае внесения изменений в главный конфигурационный файл перезапуск сервера – обязательное условие вступления их в силу.
Безусловно не все так гладко, как хотелось бы, так как использование htaccess немного сказывается на производительности сервера, тем нем менее, в случае закрытого доступа к основному конфигурационному файлу, данный способ является самым простым и удобным методом для изменения параметров.
Некоторые особенности использования htaccess:
1. В нем можно переопределить большое количество директив, прописанных в главном файле httpd.confg
2. Если расположить htaccess-файл в корневой каталог, он распространится на весь сайт (исключения составят только те каталоги, в которых расположен собственный конфигурационный файл, и каталоги, расположенные ниже в древовидной структуре)
3. Разместить htaccess-файл можно в любой каталог, а его директивы будут применены ко всем подкаталогам
4. Htaccess не доступен пользователю для просмотра из браузера, так как относится к категории «системные».
Таким образом, с помощью htaccess пользователь получает гибкость в настройке собственного сервера и может применять следующие параметры:
- Директивы простого перенаправления (редирект);
- Директивы сложного перенаправления (mod_rewrite);
- Индексные страницы;
- Обработка ошибок;
- Определение кодировки;
- Управление доступом к директориям и файлам;
- Паролирование директорий;
- Опции PHP.
Примеры наиболее частого использования файла htaccess
Сейчас мы рассмотрим самые распрострнные рабочие варианты использования htaccess для настройки сайта.
Прежде чем мы приступим обратите внимание на следующие моменты:
2. Для того, чтобы создать новый файл с расширением htaccess, необходимо, открыть блокнот или другой текстовый редактор, написать код, сохранить файл, указав расширение.htaccess (точка в переди). Затем остается забросить его в директорию, для которой он предназначался.
3. Синтаксис.htaccess
Пути к файлам (директориям) указываются от корня сервера.
DirectoryIndex /home/st5155/www/data/home.html
В случае настройки файла htaccess лежащего в корневой папке сайта, пути указываются от корня этой папки.
DirectoryIndex /home.html
Домены записываются с указанием протокола http:// или https://
Redirect / http://vash-sait.ru
Файл имеет название именно "точка" htaccess.
Для создания закомментированной строчки используйте знак #.
Редактировать файл удобнее всего при помощи редактора AkelPad, входящего в состав Total Commander, достаточно его выделить и нажать F4.
Простое перенаправление - директива Redirect
1. Осуществление перенаправления на новые страницы сайта
Если на сайте были перемещены страницы на новые адреса, то пользователь или поисковый робот, обратившись по старому адресу, наверняка их не увидит. Чтобы склеить старый и новый адреса страницы можно применить простой 301 редирект. Для этого в файле конфигурации htaccess необходимо прописать следующий код:
Redirect 301 /staraya.html http://vash-sait.ru/novaya.html
2. Приведение фидов к общему формату
Раньше использовались различные форматы фидов, такие как: Atom, RSS, Rdf. Сегодня RSS является основным и самым популярным среди них, поэтому можно позаботиться о том, чтобы другие форматы перенаправлялись в один. Для этого также используется файл htaccess и следующий код:
Сложное перенаправление - директива RewriteRule
1. Перенаправление домена с www на без www.
Очень часто приходится использовать 301 редирект в htaccess для склеивания доменов с www и без www. Раньше поисковые системы считали такие адреса совершенно различными и смотрели на них как на разные сайты. Сегодня задача по склейке возлагается на поискового робота, но никогда не лишним будет указать корректное зеркало. К тому же, у самих не будет никакой путаницы.
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.vash-sait\.ru$ RewriteRule ^(.*)$ http://vash-sait.ru/$1
2. Перенаправление посетителей на разные старницы в зависимости от IP-адреса посетителя.
В htaccess имеется возможность указать на какую страницу, будет перенаправлен пользователь с конкретным IP-адресом. Например, перенаправление посетителей с ip адресом 183.11.101.1 на страницу kontakt.html
SetEnvIf REMOTE_ADDR 183.11.101.1 REDIR="redir" RewriteCond %{REDIR} redir RewriteRule ^/$ /kontakt.html
3. Перенаправление в случае обновления веб-ресурса
Во время тестирования или обновления ресурса пользователь не сможет попасть на сайт. Однако будет неправильным не предупредить его об этом. В.htaccess можно прописать код, который будет перенаправлять пользователя на информационную страницу, описывающую сущность проблемы (причины, сроки и т. д.).
RewriteEngine on RewriteCond %{REQUEST_URI} !/info.html$ RewriteCond %{REMOTE_HOST} !^14\.124\.354\.80 RewriteRule $ http://vash-sait.ru/info.html
Где 14.124.354.80 - заменить на свой IP адресс.
4. Защита от хотлинков
Не для кого не секрет, что сегодня все чаще воруют информацию с сайтов. Иногда только текстовую, а иногда и вместе с графическими изображениями. И каждый раз когда на сторонний сайт будет приходить посетитель эти изображения будут грузится с вашего хостинга создавая нагрузку и сжигая трафик. Чтобы это предотвратить добавляем следующий код:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9] \.)?vash-sait\.ru RewriteRule \.(gif|jpe?g|png)$ -
В приведенном выше примере на сайте грузящем изображение будет появляться ошибка 403, если желаете чтобы вместо картинки отображалась определенная картинка, то последнюю строку замените на следующую:
RewriteRule \.(jpg|png|gif)$ http://vash-sait.ru/images/imageinfo.jpg
5. Перенаправление на безопасное https-соединение
В.htaccess можно настроить перенаправление на безопасное https соединение, чтобы все пользователи работали только через данный протокол, гарантирующий безопасность и надежность передачи данных между сервером и клиентом.
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
6. Автоматическая подстановка слеша в конце адреса.
Очень распространены ситуации, когда URL-адрес, заканчивается именем каталога: http://vash-sait.ru/images/raznoe
Apache самостоятельно может исправить ошибку и сделать 301-е перенаправление, добавив к ссылке недостающий слеш. Таким образом, пользователь не ощутит никакой разницы и получит в ответ необходимую страницу. Но на выполнение такого действия понадобится в два раза больше времени. Следующий код всегда будет добавлять / в конце адреса.
RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/
7. Блокировка пользователей пришедших с определенного сайта
Если владелец сайта не хочет, чтобы его ресурс посещали пользователи, зашедшие с определенного домена и требуется им закрыть доступ - htaccess также готов помочь. Вы можете перекрыть трафик с определенных сайтов используя страницу 403 или «запрет доступа». Полезна данная настройка тогда, когда на ваш сайт появились ссылки с сайтов с запрещенным контентом и по ним идет трафик на ваш сайт.
Индексные страницы - директива DirectoryIndex
1. Изменение индексной старницы загружаемой по умолчанию
Обычно по умолчанию индексными страницами является index.htm, index.php или index.html, при обращении к директории сайта сразу происходит поиск данных файлов. Но при необходимости можно переопределить индексную страницу на любую другую. Подобная задача также решается с использованием htaccess-файла.
DirectoryIndex mypage.html
Имеется возможность указать две и более страницы. Стоит учитывать, что они будут отыскиваться в той последовательности, в которой перечислены в конфигурационном файле за директивой DirectoryIndex.
DirectoryIndex index.shtml index3.php index.html index.htm
Обработка ошибок - директива ErrorDocument
1. Пользовательская страница ошибок
Несмотря на тот факт, что многие на сайтах до сих пор пользуются стандартной страницей ошибок 404, она вряд ли удовлетворит пользователя, который не получил ожидаемого результата и вместо него увидит непонятную для него информацию. Необходимо предложить страницу, которая будет соответствовать основному стилю, на которой будет выводиться более подробная информация о причинах неудачного выполнения запроса. Для этого можно указать в htaccess какой файл грузить вместо стандартной страницы ошибки 404.
ErrorDocument 404 "/404.html"
2. Создание своих страниц с описанием ошибок
Для тех, кто устал от привычных страниц, выводящих описание ошибок, произошедших на сайте, предоставляется возможность воспользоваться своими собственными заготовками. Нужно лишь самому сверстать несколько файлов с разрешением *.html, с необходимым содержимым и внести запись в htaccess-файл.
ErrorDocument 401 /errors401.html ErrorDocument 403 /errors403.html ErrorDocument 404 /errors404.html ErrorDocument 500 /errors505.html
Чтобы вы знали что помещать в каждую из страниц ошибок, кратико опишем их значения.
- 401 - Требуется авторизация (Authorization Required)
- 403 - пользователь не прошел аутентификацию, запрет на доступ (Forbided)
- 404 - запрашиваемый документ (файл, директория) не найден (Not Found)
- 500 - внутренняя ошибка сервера - ошибка скрипта или ошибка в синтаксисе файла.htaccess - (Internal Server Error)
Определение кодировки
1. Определение кодировки, в которой сервер "отдает" файлы
Чтобы у пользователя на дисплее монитора не выводились непонятные для него символы, из которых не представляется возможности прочесть слова, необходимо указать корректную кодировку. Даже при отсутствии тега < Мета http-equiv = "Content-Type"> текст на странице будет всегда корректным и поможет в этом снова htaccess-файл.
AddDefaultCharset UTF-8
2. Определение кодировки на загружаемые файлы
Подобная ситуация может возникнуть в том случае, когда пользователь загружает на сервер файл и его содержимое может быть перекодировано. Чтобы использовалась требуемая кодировка htaccess должен содержать код, указывающий что все загружаемые файлы должны будут открываться с кодировкой UTF-8.
CharsetSourceEnc UTF-8
Управление доступом к директориям и файлам
1. Запретить доступ ко всем файлам
Самый простой способ запретить просматривать файл – установить пароль, но не всегда этого достаточно. В некоторых случаях у пользователя не должно быть прав на просмотр любых файлов или каталогов (например нужно заблокировать системные каталоги, изменения в которых могут усугубить работу сервера). В htaccess-файле прописывается отрывок кода, лишающий всех привилегий пользователей.
2. Разрешить доступ с определенного IP
Полная поддержка директив.htaccess прилагается...
Пролонгации домена 199-00 руб
Этот материал один из важнейших, поэтому рекомендую уделить ему особое внимание.
В регулярном выражении можно использовать любые печатные символы и пробел, но часть символов имеет особое значение:
Круглые скобки () используются для выделения групп символов.
Символ ^ обозначает начало строки.
Символ $ обозначает конец строки.
Символ. обозначает любой символ.
Символ | обозначает альтернативу. Например, выражения "A|B" и "(ABC|DEF)" означают "A или B" и "ABC или DEF" соответственно.
Символ? ставится после символа (или группы символов), который может как присутствовать, так и отсутствовать. Например, выражению "jpe?g" подойдет и строка "jpg", и строка "jpeg". Пример выражения с группой символов: "super-(puper-)?site".
Символ * ставится после символа (или группы символов), который может отсутствовать или присутствовать неограниченное число раз подряд. Например, выражению "jpe*g" подойдут строки "jpg", "jpeg" и "jpeeeeeeg".
Символ + действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз. Например, выражению "jpe+g" подойдут строки "jpeg" и "jpeeeeg", но не "jpg".
Квадратные скобки используются для перечисления допустимых символов. Например, выражение "" равносильно выражению "a|b|c", но вариант с квадратными скобками обычно является более оптимальным по быстродействию. Внутри скобок можно использовать диапазоны: например, выражение "" равносильно выражению "". Если символы внутри квадратных скобок начинаются с символа ^, это означает любой символ, кроме перечисленных в скобках. Например, выражение "[^0-9]+" означает строку из любых символов, кроме цифр.
Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде. Например, выражению "jpe\+g" соответствует только одна строка "jpe+g".
{3,9} - фигурные скобки означают диапозон количества символов, в данном случае допускается от 3 до 9 символов, длина строки из символов должна быть равна или более 3 равна или менее 9 символов. Применяется в основном . Пример, проверяем строку HTTP запроса отправленную браузером серверу на предмет совпадения ее содержания определенному шаблону:
♳ RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
♴ предположим что мы запросили индексную сраницу на сервере %{THE_REQUEST} = «GET /index.html HTTP/1.1»
♵ в таком случае мы читаем исходную строку содержащую фигурные скобки так "начало_полученных_данныхGETпробел/index.phpпробелHTTP/"
♶ т.е. может быть "GET", а может быть "POST" могут быть и другие значения... просто символы, в зависимости от того чем и как мы запросим файл index.php на сервере.Все, что расположено после символа "#", считается комментарием.
Еще раз повторюсь, что для дальнейшего успешного понимания описания, примеров.htaccess и его настройки, данная информация просто необходима!!!
Недавно освободившиеся домены с PR и ТИЦ:
Сервис http://reg.ru - крупнейшего хостинга и регистратора доменов позволяет подать заявку на регистрацию доменного имени, которое недавно было освобождено прежним Администратором. Освобожденные домены часто имеют высокие показатили ТИЦ и PR и могут быть интересны к приобретению.
Освобожденные домены.RU c ТИЦ:
|
Свободные премиум-домены:
|
Объем информации: 5805 bytes
Использование файла.htaccess
Файл.htaccess предназначен для индивидуальной настройки сайтов и их каталогов. Он может содержать почти все инструкции, допустимые в файле httpd.conf (главный файл конфигурации сервера Апач). В отличие от httpd.conf, который должен лежать в каталоге /usr/local/etc/httpd/conf (а к нему имеет доступ только администратор сервера), файл.htaccess может лежать и, будет обрабатываться в любом каталоге сайта (если его обработка разрешена администратором сервера). В отличие от httpd.conf, настройки которого распространяются на всех пользователей сервера (владельцев сайтов), файл.htaccess вносит локальные изменения в настройки, влияя только на каталог его содержащий, вместе с вложенными в него каталогами. Файл.htaccess более глубокого вложения, переопределяет настройки аналогичного файла верхнего уровня, для своего каталога и тех, что в него вложены. Так, например, для каталога /www/, настройки задаются файлом /www/.htaccess, а для каталога /www/data/ - файлами /www/.htaccess и /www/data/.htaccess. Если в файле.htaccess нижнего уровня обнаружены те же инструкции, что и в.htaccess верхнего уровня (вероятно с иными параметрами), то выполняться будут именно они. Таким образом, образуется иерархическая структура правил, которые на нижнем уровне могут быть совершенно не такими как на верхнем (что-то мне это напоминает).
Поскольку файлы.htaccess нередко содержат информацию об аутентификации, доступ к ним из Интернета, обычно, запрещен из соображений безопасности. Вы можете разрешить или запретить доступ к ним самостоятельно, используя инструкции в самом файле.htaccess .
Синтаксис.htaccess
Вот обязательной синтаксис, несоблюдение которого приводит к ошибкам сервера:
- Пути к файлам (директориям) указываются от корня сервера: /opt/home/www.astanafoto.com/htdocs/config/.htpasswords
- Домены с указанием протокола: http://www.site.ru
Файл имеет название именно «точка»htaccess
Htaccess должен быть записан в UNIX-формате, то есть, перевод строки должен задаваться в нем одним символом (десятичный 10, шестнадцатиричный 0A), а не двумя (десятичный 13, шестнадцатиричный 0D + десятичный 10, шестнадцатиричный 0A), как в DOS или Windows. Для тех, кто работает из под Windows, полученный тексовой файл потребуется открыть в 16-ричном редакторе и запустить замену 0D на 20 (пробел в 16-ричном варианте). Есть и другие способы превращения Windows-файла в UNIX-формат.
Определение области действия директив, задаваемых в файле.htaccess
Кроме ограничения действия директив каталогом, в котором лежит файл.htaccess и вложенными каталогами, предусмотрена возможность ограничить их действие отдельными файлами по шаблону, или файлом. Блоки, определяющие область применимости директив, сделаны по аналогии с тегами: они имеют открывающий и закрывающий тег. Внутри этих тегов указываются сами директивы, действие которых требуется ограничить.
Блок Files
Блок Files ограничивает действие вложенных в него директив одним файлом, название которого указывается в открывающем теге блока:
ДИРЕКТИВЫ Блок FilesMatch
Блок FilesMatch ограничивает действие вложенных в него директив файлами, соответствующими шаблону, указываемому в открывающем теге блока:
ДИРЕКТИВЫ Блок IfModule
Блок IfModule ограничивает действие вложенных в него директив условием, что требуемые для их выполнения, модули загружены:
Этот блок позволяет избежать ошибочных ситуаций
ДИРЕКТИВЫ
Если перед названием модуля стоит слеш, директива выполняется только если модуль не загружен
ДИРЕКТИВЫ Блок IfDefine
Блок IfDefine выполняется только при условии, что требуемые для их выполнения, значения установлены:
Так же, как IfModule, этот блок позволяет избежать ошибочных ситуаций
ДИРЕКТИВЫ Директивы файла.htaccess
В файле.htaccess предусмотрено ни много директив, но и это «ни много», оказывается мощьнейшим инструментом настройки сервера в умелых рука.
Парольная защита с помощью файла.htaccess Пароль на директорию:
AuthName "Private zone"
require valid-user
Значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.
Например в директории, которую защищаем паролем создаем такой.htaccess:
AuthName "For Registered Users Only"
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
В этом примере, посетитель при запросе директории, будет читать фразу "For Registered Users Only", файл с паролями для доступа должен лежать в директории /pub/site.ru/ и называться.htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл.htpasswd и никто не получит доступа к данной директории.
Пароль только на 1 файл:
Аналогично паролированию директории полностью, можно ставить пароль только на 1 файл.
Пример установки пароля на файл private.zip:
AuthName "Users zone"
AuthUserFile /pub/home/твой_логин/.htpasswd
Пароль на группу файлов:
Аналогично, используя, можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко всем файла с расширением "sql":
AuthName "Users zone"
AuthUserFile /pub/home/твой_логин/.htpasswd
Проверка прав доступа с помощью файла.htaccess
Задача: есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. 1 группа имеет доступ только к a1 и a2, 2-я ко всем трем каталогам. Необходимо проводить аутентификацию только 1 раз - при доступе к a1, но при этом соблюдать права на доступ к а2 и а3.
Ник и пароль запрашиваются только при входе на а1 - если у юзвера есть доступ на а2 пароль уже не запрашивается. Если на а3 доступа нет, вылетит табличка "введите пароль".
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 - общий и вместе с тем закрытый. а2 и а3 только для отдельных личностей.
файл.htaccess для каталога а1:
AuthName "Input password"
require valid-user
файл.htaccess для каталога а2:
AuthName "Input password"
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер2 юзвер3
файл.htaccess для каталога а3:
AuthName "Input password"
AuthUserFile "/pub/home/абв/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер4 юзвер5
Перенаправление (редирект) посетителя с помощью файла.htaccess
Редирект на другой url:
Что бы сделать перенаправления посетителя на сайт http://site.ru в.htaccess
Redirect / http://www.site.ru
Показ разных страниц, в зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html
Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html
Перенаправление посетителя при запросе определенных страниц:
Это уже для всех сетевых вирусов и сканеров. Теперь любой запрос с адресом /_vti_bin будет автоматически перенаправляться на Microsoft:
redirect /_vti_bin http://www.microsoft.com
redirect /scripts http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /c http://www.microsoft.com
redirect /d http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
RedirectMatch (.*)cmd.exe$http://www.microsoft.com$1
Указание стартовой страницы с помощью файла.htaccess
Что бы поменять страницу, которая будет показываться при обращении к директории, пишем:
DirectoryIndex <нужная страница>
Можно указывать несколько страниц.
DirectoryIndex index.shtml index.html index.html3 index.html index.htm
Определение обработки SSI директив с помощью файла.htaccess
SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с и заканчивающийся в строку Options Indexes добавьте Includes.
После, в файле.htaccess пишем:
AddHandler server-parsed .shtml .shtm .html .htm
Обработка в html-документах php-кода
Иногда бывает полезно "обмануть" посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов. Некоторые делаю мелкие фишки, вроде того, что дают файлам расширения совпадающие с какими-либо "знаковыми" именами. Например, на сайте http://www.wmaster.ru/WIND98/TEMP/Rar$EX00.001/www.osg.ru используются файлы с расширением osg: index.osg, script.osg и т.п.
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
При большой посещаемости сервера может вызвать тормоза. Спрашивайте у админа.
Замена стандартных сообщений об ошибках сервера с помощью файла.htaccess
Наиболее интересные и полезные ошибки Апача это: 403-404, 500.
403 - пользователь не прошел аутентификацию, запрет на доступ (Forbided).
500 - внутренняя ошибка сервера (к примеру, ошибка в синтаксисе файла.htaccess).
Для того, что бы пользователю при этих ошибках были показаны ваши собственные сообщения об ошибках, в.htaccess пишем:
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html
При этом при возникновении 404 ошибки пользователю загрузится файл errors/403.html.
Удобно делать собственный обработчик на некоторые ошибки. В.htaccess пишем:
ErrorDocument 403 /errors/error.php?403
ErrorDocument 404 /errors/error.php?404
ErrorDocument 500 /errors/error.php?500
В error.php через $HTTP_SERVER_VARS[´REQUEST_URI´] определяем какой документ вызвал ошибку и дальше обрабатываем. Если в.htaccess на ErrorDocument стоит указание файла с полным путем (http://site.ru/error.php), то $HTTP_SERVER_VARS[´REQUEST_URI´] будет содержать этот файл, а не вызвавший ошибку.
Величина страницы с ошибкой должна быть больше 511 байтов, иначе Internet Explorer может показать собственную страницу с описанием ошибки..
Больше информации о кодах ошибки http сервера можно посмотреть на «Коды ошибки http сервера»
Замена стандартных сообщений об ошибках сервера позволяет нормальным языком обьяснить посетителю что произошло. Примеры страниц для замены ошибок http сервера вы можете посмотреть в каталоге ошибок http сервера
Запрет просмотра каталога с помощью файла.htaccess
Предположим, что у вас вся графика, используемая на сайте находится в директории img. Посетитель может набрать в адресной строке браузера эту директорию и увидеть список всех ваших графических файлов. Конечно, это не нанесет вам урона, но можно и не дать такого просмотра посетителю. В.htaccess пишем:
Options -Indexes
И наоборот, вы можете разрешить просмотр каталога, встроив его в стандартный интерфейс сайта директивой
Options +Indexes
Смотрите пример, как может выглядеть каталог примеров, использующихся основными страинцами сайта (возможно пример с сайта bosportour.com будет более очевидным). Описание директив для подобного отображения каталогов планируется поместить в полную докумнтацию по файлу.htaccess.
Определение кодировки по умолчанию с помощью файла.htaccess
На заре интернета и зарождения браузеров, часто была ситуация, что браузер не мог автоматически определить, в какой из русских кодировок написан документ и в браузер выдавалась какая-то каша. Для избежания этого указываем, что все отдаваемые страницы будут иметь кодировку windows-1251:
AddDefaultCharset windows-1251
Определение кодировки на загружаемые файлы с помощью файла.htaccess
При загрузке посетителем файла на сервер, возможна перекодировка его - указываем, что все получаемые файлы будут иметь кодировку windows-1251:
CharsetSourceEnc windows-1251
Вероятные ошибки в файле.htaccess
Создал файл.htaccess, но сервер выдает 500 ошибку - Internal Erorr Ошибка синтаксиса или файл записан не в том формате.
Смотрите синтаксис.htaccess.
Просмотрите файл error.log в корне своего сайта (если он там есть). Например строка:
W:/home/h15.ru/bospor/.htaccess: CustomLog not allowed here
Указывает на ошибку вфайле w:/home/h15.ru/bospor/.htaccess (http://bospor.h15.ru/.htaccess): Директива CustomLog не допустима здесь.