WebDix.ru - скачай все выпуски!
WebDix. Веб-мастерам. Избранные статьи
Колонка  редактора Веб-дизайн

Menu:


Школа Флэша на RusForumz.com - море исходников различных трюков и спецэффектов. Все исходники оригинальные.

AgeOfComp.info
AgeOfComp.info - информационно-развлекатльный блог о компьютерах и не только. Множество тематик и тем для обсуждения. Интересные проблмы, ответы на многие вопросы. Без регистрации
Подробнее

Руководство по использованию .htaccess

Автор статьи: webobzor.net
Сайт: webobzor.net


Файл .htaccess используется для "гибкой" настройки сервера Apache (обработки ошибок, ограничения доступа). В этой статье будем учиться его использовать. Обычно файл .htaccess лежит в корневом каталоге и действует на весь сайт и на все дирректрии (если в них не находится "своего" .htaccess). Если необходимо создать конкретные настройки Apache для определенной папки, следует поместить в нее новый файл .htaccess и действие его распространится на данную папку. Причем .htaccess лежащий в корне сайта никак влиять на эту папку в этом случае не будет.

Как сделать .htaccess

Просто. На локальном компе создаем текстовый документ .htaccess.txt, по FTP заливаем его на хост, и переименовываем в .htaccess Теперь немного конкретики. Что можно сделать посредством .htaccess?

Меняем страницу, которая будет показываться при обращении к директории.

Пропишем в файле .htaccess:

DirectoryIndex index.shtml

*** При обращение к директории, в которой лежит .htaccess, будет грузиться файл index.shtml

Запрет доступа с помощью .htaccess

При желании можем дать запрет на все файлы:

deny from all

*** Никто ничего не увидит.

Разрешить доступ посетителю только с определенного ip:

Order Allow,Deny
deny from all
allow from 192.168.8.1

*** Всем кроме посетителя с IP 192.168.8.1 доступ запрещен.

Кстати, вместо ip адреса в .htaccess можно использовать имя домена. Например. Запретим доступ для всех посетителей, кроме пришедших с www.webobzor.net :

Order Deny,Allow
Deny from all
Allow from .webobzor.net

*** Только армадовцы увидят ваш сайт.

Запрет доступа для определенного ip:

Order Allow,Deny
Allow from all
deny from 192.168.8.1

*** Для посетителя с IP 192.168.8.1 доступ на сайт запрещен.
**** Только не спрашивайте у меня где всять список китайских ip

Аналогично, как и в примере выше, можно вместо (а можно и совместно) IP использовать имя домена, т.е. запретить доступ для посетителей, пришедших с определенного сайта:

Order Allow,Deny
Allow from all
deny from .thehun.net
deny from 192.168.8.1

*** Для посетителя с IP 192.168.8.1 и всех, кто пришел с thehun.net доступ на сайт запрещен.

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

CharsetSourceEnc windows-iso-8859-1

*** все файлы будут иметь кодировку windows-iso-8859-1

Можно выставить определенную кодировку лишь на конкретные загружаемые на хост файлы:

AddType "application/x-httpd-php3; charset=windows-iso-8859-1" .html
AddType "application/x-httpd-php3; charset=windows-1251" .htm

*** Устанавливаем кодировку windows-iso-8859-1 на файлы .html и windows-1251 на файлы .htm

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

AddDefaultCharset windows-iso-8859-1

*** Все страницы, которые отдает сервер клиенту, будут иметь кодировку windows-iso-8859-1

Перенаправляем посетителей на другой URL (редирект)

В .htaccess пишем:

Redirect / http://www.webobzor.net

*** все посетители будут перенаправлены на www.webobzor.net

Перенаправление посетителей при запросе определенных страниц: Защищаемся от всяческих сетевых вирусов и сканеров. Добавляем в .htaccess:

redirect /scripts http://www.microsoft.com
redirect /_vti_bin http://www.microsoft.com
redirect /MSADC 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

*** Любой запрос с адресом /_vti_bin или /scripts будет автоматически перенаправляться на сайт Microsoft.л

Редирект посетителей в зависимости от реффера (ссылающейся страницы):

RewriteCond %{HTTP_REFERER} http://www.sexnarod.ru
RewriteRule ^/sex-video.html$ /no.html [L]

*** В данном случае все посетители с форума sexnarod.ru вместо файла sex-video.html получат файлик no.html

Можно показывать разные страницы сайта, в зависимости от IP адреса посетителя (редирект по IP)

SetEnvIf REMOTE_ADDR 192.168.8.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /no.html

*** Посетители с айпи адресом 192.168.8.1 будут перенаправляться .htaccess'ом на страницу no.html

Ставим запрет на отображение содержимого директории при отсутствии индексного файла:

Options -Indexes

*** Это пригодится, если картинки или видео лежат в определенной папке, например, content на вашем хосте.

Обработка ошибок c помощью .htaccess:

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

401 - Требуется авторизация - Authorization Required
403 - запрет на доступ - Forbided
404 - запрашиваемый документ (файл, директория) не найден - Not Found
500 - внутренняя ошибка сервера - ошибка скрипта или ошибка в синтаксисе файла .htaccess - Internal Server Error

Можно создать свои страницы ошибок (см. пример выше), а можно редиректить на конкретный url:

ErrorDocument 401 http://www.webobzor.net/
ErrorDocument 403 http://www.webobzor.net/
ErrorDocument 404 http://www.webobzor.net/
ErrorDocument 500 http://www.webobzor.net/

Защита директорий

При желании можно защитить свои каталоги или отдельный папки паролем. При этом будем выведен запрос о вводе логина и пароля пользователя. Например:

AuthName "Ауторизация" AuthType Basic AuthUserFile
/home/alex/domains/webobzor.net/public_html/access/.htpasswd AuthGroupFile
/dev/null <Files index.html> require valid-user </Files>

*** При этом при обращении пользователя к файлу index.html папки access необходимо будет произвести аутентификацию. Пароли и логины пользователей сохраняются в файле .htpasswd. Пароль хранится в зашифрованном виде. Для формирования файла .htpasswd вы можете воспользоваться этим веб инструментом.



Вся правда о твоём мобильнике...
Самые выгодные обменные пункты электронных валют