Все возможные редиректы файла .htaccess | SelkinVitaly.RU
Все возможные редиректы файла .htaccess | SelkinVitaly.RU

Редиректы в .htaccess

Рубрика: Файл .htaccess

Просмотров: 1741

Здраствуйте, дорогие друзья! Открываем новую рубрику про файл дополнительной конфигурации веб-сервера 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

Структура директорий:

Структура директорий веб-сервера Apache,  для чего нужен файл .htaccess

Структура директорий веб-сервера заключается в том, что действие .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]

На сегодня всё, продолжим в следующих статьях! Удачи!

При подготовке использовался материал:

www.wmaster.ru

Комментарии:

Добавил: Виталий (20-Jun 2011 21:37:45)

Хорошая статься, спасибо!


Добавление комментария:

Имя *:

Email:

Текст *:

Символы на картинке *:

RSS-подписка
RSS-подписка на статьи по основам сайтостроения RSS-подписка на полезные уроки по web-языкам
Разделы статьй
Каталог товаров
Разделы уроков
Последние статьи
Последние уроки