Самым распространенным http-сервером является Apache, так как он распространяется абсолютно бесплатно и обладает поддержкой PHP ,Perl, Java, CGI. На данный момент работает на более чем половине веб-серверов.
Htaccess – файл, в котором хранятся дополнительные настройки серверов, работающих при поддержке Apache. С помощью файла Htaccess можно настраивать редиректы, доступ к каталогам и т.д. При этом, этот файл не обращается к главному конфигурационному файлу, иными словами он не может никоим образом повлиять на работу сервера.
Файл Htaccess действует на каталог, в котором размещен, а также на дочерние каталоги. Этот файл можно разместить в любом каталоге с любыми настройками. Настройка файла происходит с помощью директив, которые также действуют на все файлы каталога, в котором размещен Htaccess и всех его дочерних каталогов, только если в дочерних каталогах не установлен свой Htaccess со своими настройками.
Назначение файла Htaccess
1. Авторизация (устанавливаем ограничение для посещения конкретной директории).
2. Собственные страницы ошибок (с помощью этого файла можно изменить вид страниц, которые отдаются при возникновении каких-либо ошибок на стороне сервера).
3. Изменение URL-адресов (можно изменять длинные URL-адреса на короткие).
4. Контроль кеша (через файл Htaccess возможно настроить кеширование файлов браузерами).
Директива перенаправления – редирект
Одна из самых часто используемых в файле Htaccess директив – это директива простого перенаправления. К примеру, нам нужно сделать редирект с какой-либо страницы сайта на другой сайт. Для этого, в файл .htaccess прописываем следующие строчки:
PHP код:Или так:Redirect 301 is_an_old_page.html http://а-new-domain.ru/a_new_page.html
PHP код:Не забудьте, что в файле php.ini нужно предварительно включить модуль mod_alias (включает Redirect, RedirectPermanent, RedirectMatch), либо модуль mod_rewrite (включает реврайт).Redirect permanent is_an_old_page.html http://а-new-domain.ru/a_new_page.html
Сложное перенаправление - mod_rewrite
С помощью данного редиректа можно преобразовывать URL-адреса, так сказать, на лету. В mod_rewrite есть огромное количество правил и условий, которые позволяют делать любые преобразования URL-адресов.
Можно перенаправлять пользователей с домена с www на домен без www. Сделать это можно следующим образом:
PHP код:Можно выдавать разные сайты, в зависимости от браузера пользователя, используя заголовок запроса User-Agent:Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
PHP код:Для того, чтобы запретить поисковым роботам Google посещать страницы сайта, в файл htaccess помещаем следующие строки:RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^(.*)$ /mozilla/$1 [L]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
RewriteRule ^(.*)$ /lynx/$1 [L]
RewriteRule ^(.*)$ /default/$1 [L]
PHP код:При посещении сайта с такими настройкам, поисковому боту Google будет отдаваться ошибка 403 (FORBIDDEN).RewriteEngine on
RewriteCond %{USER_AGENT} Googlebot
RewriteRule .* - [F]
Если вы перенесли сайт на другой домен, то нужно обязательно сделать такой 301 редирект (со временем, перетекут параметры ТИЦ и PR):
PHP код:Для того, чтобы перенаправить пользователей с поддомена, к примеру forum.webmasters.ru на директорию webmasters.ru/forum, вписываем в файл htaccess это:RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.old_domain\.com$ [R=301,1]
RewriteRule ^(.*)$ http://www.new_domain.com/$1
PHP код:А какие перенаправления вы используете на своих сайтах и почему?RewriteEngine on
RewriteCond %{HTTP_HOST} ^forum\.webmasters\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/forum/$ [NC]
RewriteRule (.*) /forum/$1 [L]
- 28.05.2010 22:27
Последний раз редактировалось grazer; 31.05.2010 в 15:56.
- 28.05.2010 22:57
Похоже, что ошибка в тексте.
Думаю, подразумевается «на», а не «не».На данный момент работает не более чем половине веб-серверов - 31.05.2010 14:49
Интересная статья, спасибо. Вообще, с htaccess можно много магических штучек делать :)
- 31.05.2010 15:58
- 01.06.2010 20:08
Я вот такое всегда прописываю:
# www редирект
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
Это что бы www версия сайта не индексировалась :) - 02.03.2012 16:59
- 02.03.2012 17:13
В конкурсной теме Редиректы сайта ТС утверждает, что 301 редирект уничтожает весь Тиц и PR, Вы утверждаете прямо обратное. Кто прав? Где истина?
- 02.03.2012 17:28
blazhnov, PR - да, перетечет, а вот насчет ТИЦа - думаю что нет.
Спасибо сказали:
blazhnov(02.03.2012), - 02.03.2012 18:42
Проверено на собственном опыте: PR - перетекает, а вот ТИЦ - нет...
- 02.03.2012 20:28
А на 302-редиректе? Его можно оставлять на постоянно?
Спасибо сказали:
atheroth(30.04.2012),
Тэги топика:
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
.htaccess | Хостинг и Серверы | 11 | 13.02.2013 19:23 |
Как получать 10$ за любой файл | Реклама партнерских программ | 0 | 09.05.2010 11:27 |
Файл robots.txt – важная часть блога | Дайджест блогосферы | 11 | 15.01.2010 23:43 |
проблемы с .htaccess | Прочее | 6 | 09.10.2009 00:11 |
.htaccess редирект | Прочее | 9 | 11.09.2009 21:48 |
Интересные темы
htaccess преобразование url
Вся необходимая информация по преобразованию url с помощью файла htaccess, читайте подробности здесь.








