Синдикация
Примеры настройки файла .htaccess. 16 повседневных приемов
Пока некоторые наши доблестные сео “гуру” переводят иностранные статьи, не утруждая себя установкой ссылки на оригинал статьи, приведу вам подборку кодов для настройки .htaccess.
Почти все пункты являются обязательными, кроме
- редиректа и блокировки - они настраиваются по мере необходимости
- а также настройки ЧПУ (ЧеловекоПонятныхУРЛ) - как правило, можно обойтись функционалом CMS
Как создать .htaccess?
Все не так страшно, как может показаться:
- открываем блокнот
- пишем код (можно и потом это сделать)
- сохраняем документ с названием .htaccess
- заливаем в корень сайта (или в папку на сервере, где будем производить настройки)
* yoursitename.ru в примерах заменяйте на адрес вашего домена
Настройки по умолчанию

1. Установка главной страницы по умолчанию
DirectoryIndex pagename.html
2. Определение страниц ошибок (error) в .htaccess
ErrorDocument 403 /403.php ErrorDocument 404 /404.php ErrorDocument 500 /500.php
Соответственно адрес и название файла могут быть другими, например /error/page404.html
3. Защита от хотлинков
То, что контент с сайтов воруют, это уже давно не новость. Но бывает, что прут вместе с картинками. Вот дабы избежать нагрузки на сервер и раздутия траффика, пишем:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
#домены, которые могут ссылаться на картинки с вашего сайта
RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9] \.)?yoursitename\.ru [NC]
#не показывать картинки при хотлинках
RewriteRule \.(gif|jpe?g|png)$ - [F,NC,L]
Если хотите, чтобы на чужом сайте вместо 403 ошибки появлялась определенная картинка, последнюю строку следует заменить на:
RewriteRule \.(jpg|png|gif)$ http://yoursitename.ru/images/imagename.jpg [NC,R,L]
4. Принудительно сохранение файла вместо открытия
Если хотите, чтобы посетители вместо просматра файла онлайн сохраняли его, то в .htaccess пишем:
AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4
5. Кэширование файлов
В WordPress для этого есть специальный плагин: wp-super-cache. Если вы же пользуетесь CMS, которая кэширование не поддерживает, то можно произвести следующие настройки в .htaccess
#кэширование html и htm на сутки <FilesMatch ".(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch> #кэширование css, javascript и txt-файлов на неделю <FilesMatch ".(js|css|txt)$"> Header set Cache-Control "max-age=604800" </FilesMatch> #кэширование flash и картинок на месяц <FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> #запрет на кэширование скриптов <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch>
Параметр max-age приведен в секундах.
6. Включение ошибок на время отладки
php_flag display_errors on
Спасибо voland’у за подсказку
Настройка редиректа с помощью .htaccess

1. 301 редирект
Оптимальное решение для перенаправления посетителей со старых адресов на новые, если со временем структура сайта менялась, а старые URL’ы могли где-то остаться.
Redirect 301 /oldpage.html http://yoursitename.ru/newpage.html
Встречается еще такой вариант:
Redirect permanent /oldpage.html http://yoursitename.ru/newpage.html
Но в чем принципиальная разница между ними, честно говоря, объяснить не смогу. Может кто из читателей подскажет.
2. Склеивание доменов с www и без www
Редирект с адреса yoursitename.ru на www.yoursitename.ru
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.yoursitename.ru$ [NC]
RewriteRule ^(.*)$ http://www.yoursitename.ru/$1 [L,R=301]
Обратный редирект
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^yoursitename.ru$ [NC]
RewriteRule ^(.*)$ http://yoursitename.ru/$1 [L,R=301]
3. 302 редирект
Если вы ведете работы на сайте, то можете временно отправлять посетителей на нужную страницу (например, с описание того, когда планируется завершение работ и как можно с вами связаться).
RewriteEngine on
RewriteCond %{REQUEST_URI} !/informpage.html$
RewriteCond %{REMOTE_HOST} !^12\.345\.678\.90
RewriteRule $ http://yoursitename.ru/informpage.html [R=302,L]
Просмотр сайта будет возможен только с вашего ip-адреса - 12.345.678.90
4. Переадресация на другой сайт
Переадресация всех посетителей на другой сайт, помимо указанных ip-адресов
ErrorDocument 403 http://www.yoursitename.ru Order deny,allow Deny from all Allow from 12.345.678.90 Allow from 12.345.678.92
5. Переадресация на безопасное https соединения
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Запрет/блокировка с помощью .htaccess

1. Запрет на листинг директории
Используется при отсутствии индексного файла, если хотите запретить просмотр содержимого папки (например, для images):
Options All -Indexes
Обратный код, в смысле разрешение
Options +Indexes
2. Блокировка доступа к файлу
Например, это может быть ваш .htaccess
<Files .htaccess> order allow,deny deny from all </Files>
3. Блокировка по ip
Чтобы спамеры не надоедали
<Limit GET> Order Deny,Allow Deny from 12.345.678.90 Deny from 90.876.543. Deny from .tvoe.tv Allow from all </Limit>
Будут заблокированы:
- юзер с ip 12.345.678.90
- все посетители с ip, попадающими в диапазон от 90.876.543.0 до 90.876.543.255
- и все посетители от провайдера tvoe.tv
Настройка ЧПУ с помощью .htaccess

Вообще, если вы работаете с WordPress, то настроить “дружелюбные” url можно в разделе Настройки » Постоянные ссылки (ЧПУ). Многие CMS так же поддерживают настройку адреса страницы. Поэтому, если есть возможность, сначала попробуйте обойтись функционалом движка, и потом уже приступайте к настройке htaccess.
1. Как убрать из адреса ?p=
По умолчанию адрес страницы выглядит следующим образом: yoursitename.ru/?p=xxxx, где xxxx - id статьи.
RewriteCond %{REQUEST_URI} ^/([0-9]+)$
RewriteRule .* http://yoursitename.ru/?p=%1 [R=301,L]
2. Как убрать из адреса category
По аналогии с прошлым способом пишем
RewriteRule ^category/(.+)$ http://yoursitename.ru/$1 [R=301,L]
- - - - - - - - - -
Ну и напоследок:
Если кого интересует продвижение сайтов в Екатеринбурге, то прошу на сайт. Помимо услуг компании на сайте можно найти пару интересных статей на тему SEO, например, “Как семантическое ядро влияет на стоимость?” и “Оптимизация vs Продвижение”
JQuery framework - для тех, кто начал изучать jQuery самое оно. Надо сказать, что фреймворки вообще вещь очень даже полезная (фреймворк - простая концептуальная структура, используемая для решения сложной, проблемной задачи), так что пробуйте.
Ну а для мечтающих о своей квартире: недвижимость в Греции. Задумайтесь, т.к. если постараться, то можно в Греции найти виллу по стоимости квартиры в Петербурге (знаю, т.к. уже много материала перелопачено)
Если есть вопросы или поправки по теме - пишите, задавайте
11 августа 2009 в 14:31
от 90.876.543.0 до 90.876.543.255
[Ответить]
ArtShok:
августа 11, 2009 в 15:52
Спасибо!
А можете объяснить почему .255? Откуда данные?
[Ответить]
11 августа 2009 в 16:07
цитирую:
[Ответить]
ArtShok:
августа 11, 2009 в 16:42
Будем знать
[Ответить]
12 августа 2009 в 18:33
Полезная статья. Но есть ошибки.
Для блокировки по IP пишем:
1.
2.Order Allow,Deny
Именно так, сначала выполняется allow, потом deny
3.Allow from all
4.Deny from 12.345.678.90
5.Deny from 90.876.543.
6.Deny from .tvoe.tv
Итак, сначала разрешаем для всех, а потом баним нужные IP. Так будет работать правильно.
7.
[Ответить]
13 августа 2009 в 16:47
довольно занимательная статья. правда, я ничего не понял, но ссылку программисту скинул.))
[Ответить]
15 августа 2009 в 9:13
Защита от хотлинков это просто must have! У шакина читал про плагин для такой защиты, но имхо проще в .htaccess прописать.
[Ответить]
16 августа 2009 в 18:24
Полная статья по htaccess. Сохранил в закладках.
[Ответить]
19 августа 2009 в 23:49
php_flag display_errors on
Включение ошибок на время отладки
[Ответить]
ArtShok:
августа 20, 2009 в 0:30
Спасибо, дополнено
[Ответить]
24 августа 2009 в 17:20
Немного непонятно. Почему все пишут 12.345.678.90. Что такое 678. По Ip4 - Ип адрес 4 байта - октет - до 255. Нельзя ли писать так 101.102.166.90, вместо 12.345.678.90.
Или я чета не доганяюю?!
[Ответить]
ArtShok:
августа 25, 2009 в 23:22
Не воспринимайте цифры буквально - в данном случае они даны исключительно для примера. Опор в статье делается на .htaccess, а не на теорию IP- адресов
[Ответить]
25 августа 2009 в 7:59
Спасибо, помогло в работе!
[Ответить]
7 декабря 2009 в 23:10
Спасибо, познавательно. Еще бы добавили готовый .htaccess в качестве примера, где предусмотрено “все очень нужное”
[Ответить]
ArtShok:
декабря 8, 2009 в 0:33
Пожелание учтено
[Ответить]
8 января 2010 в 0:52
Никогда не вникал в тонкости работы с .htaccess только немного стремно экспериментировать, а то ошибки с этим файлом могут боком вылезти
[Ответить]
inst:
января 9, 2010 в 19:15
На этот случай нужны backup’ы =)
[Ответить]
11 января 2010 в 0:58
По моему это:
1 ErrorDocument 403
2 Order deny,allow
3 Deny from all
4 Allow from 12.345.678.90
5 Allow from 12.345.678.92
к переадресации на другой сайт не имеет не какого отношения. Просто тупой вывод страницы с ошибкой
[Ответить]
11 января 2010 в 2:08
Вот так будет правильно при пересыле всех, кроме разрешенных на другую страницу:
1
2 Order Deny,Allow
3 Allow from 12.345.678.90
4 Allow from 90.876.543.
5 Allow from .tvoe.tv
6 Deny from all
7
8 ErrorDocument 403 *
*Сайт перенаправления
[Ответить]
11 января 2010 в 2:12
извиняюсь теги не вставились:
1 (Limit GET HEAD POST)
2 Order Deny,Allow
3 Allow from 12.345.678.90
4 Allow from 90.876.543.
5 Allow from .tvoe.tv
6 Deny from all
7 (/Limit)
8 ErrorDocument 403 *
*Сайт перенаправления
Вместо круглых скобок треугольные
[Ответить]
12 января 2010 в 18:48
у меня защита от хотлинков на хостинге прописывается)))) правда классно? а так статья полезная многим) жаль поздно прочитал) разобрался самостоятельно уже)
[Ответить]
18 января 2010 в 23:12
АртШок, спасибо Вам за интересную и полезную надпись. Начала уже редактировать .htaccess по Вашим рекомендациям.
[Ответить]
ArtShok:
января 19, 2010 в 12:52
Пожалуйста:) Желаю удачно развлечься
[Ответить]
29 января 2010 в 11:49
Можно ли сделать с помощью htaccess редирект с урлов типа site.ru/PrOdUcT на site.ru/product. или каким то другим способом.
Я к примеру переименовал страничку /Product в /product и поисковые системы считают эти страницы разными с дублированным конетентом.
[Ответить]
4 февраля 2010 в 2:34
Кстати защита от хотлинка хорошая штука, один блог разместил кучу хотлинков на мои картинки
[Ответить]
5 февраля 2010 в 6:41
)) вместо 403 свою картинку влепить, то что нужно ! )
[Ответить]