17-примеров использования файла .htaccess для seo

Алексей Думчев
23 Марта 2015 г, 14:15
   67

.htaccess для seo В предыдущих статьях речь уже шла о том, как провести аудит сайта самостоятельно, где рассматривались подробные инструкции по выявлению и устранению ошибок на сайте. И тогда мы не раз обращались к файлу .htaccess, в котором прописываются различные директивы, необходимые для внутренней seo-оптимизации всего сайта.

Файл .htaccess используются в основном разработчикам веб-ресурсов.  Но для успешного seo-продвижения и правильной внутренней оптимизации, очень часто приходится работать с данным файлом и другим специалистам, особенно на старте проекта.

В этой статье мы собрали максимальное полное пособие по использованию файла .htaccess для seo-специалистов и разработчиков, желающих углубить свои знания в seo.
Напомним, что данный файл всегда расположен в корневой папке сайта.

1. Установить единую кодировку сайта

AddDefaultCharset UTF-8

Кодировка для windows-1251

AddDefaultCharset WINDOWS-1251

Чаще всего используется первый вариант.
Для проверки кодировки страниц используем сервис be1.ru. 2. Задать страницу ошибки (404 ошибка, страница не существует)

ErrorDocument 404 http://seo-impulse.ru/404.html

Проверяем код ответа сервера для данных страниц через be1.ru. Для страниц ошибок – 400, для работающих – 200 OK. 3. Редирект 301 с любой страницы на любую другую

Redirect 301 /page-1.html http://seo-impulse.ru/page-2.html

Альтернативный вариант для перенаправления

Redirect permanent /page-1.html http://seo-impulse.ru/ page-2.html

При таком способе для каждой страницы необходимо прописывать 301 редирект отдельно. 4. Редирект на основное зеркало (с www на не-www)
1 – способ

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

2 – способ

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.seo-impulse\.ru$ [NC]
RewriteRule ^(.*)$ http://seo-impulse.ru/$1 [R=301,L]

При этом не забываем прописывать основной хост в файле robots.txt и в панели webmaster. 5. Редирект на основное зеркало (с не-www на www)

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^seo-impulse\.ru$ [NC]
RewriteRule ^(.*)$ http://www.seo-impulse.ru/$1 [R=301,L]

2-способ

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^seo-impulse\.com$ [NC]
RewriteRule ^(.*)$ http://www.seo-impulse.ru/$1 [R=301,L]

Чтобы не ошибиться с выбором основного зеркала, обращаем внимание на то, по какому адресу находится большинство страниц в выдаче (с префиксом или без). 6. Редирект со страниц со слешом “/” на без слеша

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

Альтернативный вариант

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://seo-impulse/$1/ [R=301,L]

Редирект со страницы без слеша на страницу со слешом “/”

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Данные редиректы могут не работать для Joomla, если есть модуль для интернет-магазина Virtuemart. В таком случае необходимо настраивать редирект через php, о чем пойдет речь в следующих статьях.

7. Редирект с дублей главной страницы вида index.php

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://seo-impulse.ru/ [R=301,L]

Учитываем основной хост домена (с префиксом или без) – это имеет значение. 8. Редирект всех страниц старого сайта на морду нового сайта
1 – если основной хост старого домена с префиксом (с www)

RewriteCond %{HTTP_HOST} ^www\.seo-impulse\.ru$ [NC]
RewriteRule ^(.*)$ http://seo-impulse-new.ru/$1 [L,R=301]

2 – если основной хост старого домена без префикса (без www)

RewriteCond %{HTTP_HOST} ^seo-impulse\.ru$ [NC]
RewriteRule ^(.*)$ http://seo-impulse-new.ru/$1 [L,R=301]

9. Запретить доступ на сайт для заданных IP

allow from all
deny from 154.168.15.122
deny from 124.15.

Необходимо, если есть вероятность нарушения безопасности сайта с заданных IP. 10. Обрезаем название category в адресе site.ru/category/odezhda

RewriteRule ^category/(.+)$ http://seo-impulse.ru/$1 [R=301,L

Вместо category можно использовать имя любой подпапки, или подподпапки, тогда выражение примет вид

RewriteRule ^category/ category-2/(.+)$ http://seo-impulse.ru/$1 [R=301,L

где “^” – начало строки. 11. Удаляем расширение php из адреса страницы

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

Наш УРЛ становится более привлекательным для пользователя. 12. Настроить 301 редирект со старой категории на новую категорию сайта

RewriteRule ^(.*)/category/(.*)$ $1/category/$2 [R=301,L]

13. Для настройки 301 редиректа с зоны РФ на домен зоны RU

RewriteCond %{HTTP_HOST} ^xn-...\.xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://seo-impulse.ru/$1 [R=301,L]

14. Автоматическое перенаправление с дублей главных страниц index|default с расширениями htm|html|php|asp|aspx

RewriteCond %{THE_REQUEST} ^GET\ .*/(index|default)\.(htm|html|php|asp|aspx)\ HTTP
RewriteRule ^(.*)(index|default)\.(htm|html|php|asp|aspx)$ http://seo-impulse.ru/$1 [R=301,L]

15. Редирект с конкретного поддомена на основной домен

RewriteCond %{HTTP_HOST} ^test.seo-impulse.ru$ [NC]
RewriteRule ^(.*)$ http://seo-impulse.ru%{REQUEST_URI} [R=301,NC,L,QSA]

16. Замена с расширения php на расширения html

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.php$ $1.html [L]

17. Сделать ЧПУ через 301 редирект

RewriteEngine on
RewriteRule ^ category/([a-zA-Z0-9_-]+)/([0-9]+)\.html$category.php?name=$1&id=$2

А что вы думаете по этому поводу? Давайте обсудим в комментариях!

Понравилась статья? Получай свежие статьи первым по e-mail.
Подпишитесь на обновления:
Оцените статью:
Поделиться:
Популярное в блоге
подпишитесь на обновления
Больше полезных статей, кейсов и мануалов еще впереди. Подпишись на обновления, это бесплатно!
Мы в социальных сетях
Оставить заявку