Здраствуйте, дорогие друзья! Открываем новую рубрику про файл дополнительной конфигурации веб-сервера Apache - .htaccess.
Когда мы вводим URL в адресную строку браузера, то происходит запрос к веб-серверу, который и решает как и что отображать в окне браузера. Существует два наиболее популярных сервера: IIS и Apache (Как показывает практика, Апач имеет большую популярность). Как и любое программное обеспечение, Апач имеет возможность конфигурации, которая осуществляется через файл httpd.conf. Но так как нам, пользователям виртуального хостинга, запрещено вносить изменения в конфигурацию сервера, то разрешено лишь управлять конфигурацией Апача через .htaccess.
Создаём .htaccess:
Среда операционной системы Windows нам не позволит создать данный файл, тк он состоит, как Вы уже заметили, лишь из разрешения, имени не имеет. Поэтому следует использовать файловый менеджер Total Commander, предварительно создав текстовый документ.
Синтаксис:
Как и любой язык, конфигурационный файл .htaccess имеет свой синтаксис, несоблюдение которого приводит к ошибкам:
- Пути к файлам/директориям указываются от корня сервера:
/opt/home/www.selkinvitaly.ru/htdocs/.htpasswords
Redirect / http://www.selkinvitaly.ru
Структура директорий:

Структура директорий веб-сервера заключается в том, что действие .htaccess распространяется на все папки и файлы, вложенные в данный каталог.
Если мы в данном примере пропишим запрет на доступ, то он[запрет] будет действовать и на download.html, и на index.html, и на js, и на папки, находящиеся в css. Т.е на все папки и файлы.
А вот если .htaccess находился бы в images, то css, js, download.html и тд. были доступны, а запрет распространялся на папки и файлы, находящиеся в images.
Теперь, когда имеем теоритические представления о .htaccess и веб-сервере Apache, можно немного попрактиковаться.
Редирект (Перенаправление):
С сайта на сайт:
Redirect / http://selkinvitaly.ru
Данный редирект часто используется в тех случаях, когда необходимо перенаправить пользователя на html-документ, в котором говорится, что сайт временно не доступен из-за технических работ.
Cо страницы на сайт:
Допустим, что перед нами стоит задача - при запросе к странице page.php сделать перенаправление на другой сайт/страницу. Открываем любым текстовым редактором .htaccess, расположенный в корне сайта, и вставляем следующий код:
Redirect /page.php http://selkinvitaly.ru/
Получаем нужный результат.
Для IP-адреса(ов):
А как же сделать редирект для посетителя с определённым IP-адресом? Легко:
SetEnvIf REMOTE_ADDR 127.0.0.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /page.php
Для нескольких IP-адресов:
SetEnvIf REMOTE_ADDR (127.0.0.1|192.168.1.1) REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /page.php
По типу файлов:
Бывает такая ситуация, когда необходимо перенаправить посетителя на определённую страницу, кроме запросов к определённым файлам:
RewriteEngine On
RewriteRule !.(png|gif)$ page.php
Теперь все запросы, кроме запросов к файлам с разрешениями png и gif, будут перенаправляться на файл page.php
Редирект на сайт с префиксом "www":
RewriteEngine On
RewriteCond %{HTTP_HOST} ^selkinvitaly\.ru$ [NC]
RewriteRule ^(.*)$ http://www.selkinvitaly.ru/$1 [R=301,L]
Поcетитель обращается к нашему сайту по адресу selkinvitaly.ru, а его перенаправляют на www.selkinvitaly.ru.
Обратный вариант - на сайт без префикса "www":
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.selkinvitaly\.ru$ [NC]
RewriteRule ^(.*)$ http://selkinvitaly.ru/$1 [R=301,L]
На сегодня всё, продолжим в следующих статьях! Удачи!
При подготовке использовался материал:

Рубрика:
Просмотров: 1741
Дата: 2.07.09

2.03.10
3.02.10
12.01.10
28.11.09
22.11.09
22.10.09
27.09.09
18.09.09
18.08.09
6.08.09