Главная HTML 301-редирект .htaccess

Автопереход на другую страницу

Редирект 301

Редирект (redirect - перенаправление) - это процесс, при котором пользователь перенаправляется с неактуальной страницы на актуальную. Это может быть http и https или адрес с/без www ...
Редирект может выполняться как в браузере (см. HTML редирект), так и на сервере.
Серверный редирект считается предпочтительным, так как не замедляет загрузку страниц.

Серверный редирект - это 301 код состояния HTTP (редирект 301), который означает, что ресурс переместили на новый URL навсегда.

.htaccess

Самый простой способ реализовать редирект на серверной стороне это - редирект через файл .htaccess
Для этого нужно:
  1. Доступ сайта к хостингу (серверу).
  2. Сайт должен работать на сервере под управлением Apache.
    Apache HTTP Server - самым популярный HTTP-сервер в Интернете.
  3. Доступ к файлу .htaccess
Получить доступ к файлу .htaccess можно двумя способами:
  1. С помощью любого FTP-клиента, например, FileZilla.
  2. Через панель управления вашего хостинг-провайдера.

Файл .htaccess обычно лежит в каталоге там же, где и главная страница вашего сайта index.html.
Дальше, порядок действий следующий:
  1. Скачиваете .htaccess на свой локальный ПК.
  2. Открываете файл на редактирование в блокноте.
  3. Прописываете правило редиректа для вашего сайта/страницы.
  4. Закачиваете .htaccess обратно на сервер.

В файле .htaccess обязательно должны присутствовать команды:

Options +FollowSymLinks    
RewriteEngine On

Условия редирект рекомендуется записывать в блоке IfModule:

<IfModule mod_rewrite.c>
</IfModule>

 

1: редирект-301 с одной страницы на другую
Options +FollowSymLinks
RewriteEngine On
<IfModule mod_rewrite.c>

# 301 Redirect
Redirect 301 /old-page1.html http://domain.ru/new-page1.html
Redirect 301 /../old-page2.html http://domain.ru/new-page2.html

</IfModule>

 

2: редирект-301 с www на без www
Options +FollowSymLinks
RewriteEngine On

<IfModule mod_rewrite.c>

# Редирект домена с WWW на домен без WWW
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

ИЛИ

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

</IfModule>

 

3: редирект-301 без www на с www
Options +FollowSymLinks
RewriteEngine On
<IfModule mod_rewrite.c>

# Редирект домена без WWW на домен с WWW
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

</IfModule>

 

4: редирект-301 с HTTP на HTTPS
Options +FollowSymLinks
RewriteEngine On
<IfModule mod_rewrite.c>

# Перенаправляем с HTTP на HTTPS
SetEnvIf X-HTTPS 1 HTTPS
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

</IfModule>

 

5: редирект-301 с HTTPS на HTTP
Options +FollowSymLinks
RewriteEngine On
<IfModule mod_rewrite.c>

# Перенаправляем с HTTPS на HTTP
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

</IfModule>

 

6: Устанавливаем кодировку UTF-8
Options +FollowSymLinks
RewriteEngine On
<IfModule mod_rewrite.c>

# Устанавливаем кодировку UTF-8
AddDefaultCharset UTF-8

</IfModule>

 

7: Устанавливаем кодировку Windows-1251
Options +FollowSymLinks
RewriteEngine On
<IfModule mod_rewrite.c>

# Устанавливаем кодировку Windows-1251
AddDefaultCharset WINDOWS-1251

</IfModule>

Как создать файл .htaccess в Windows

Особенность файла состоит в том, что он не имеет имени, у него лишь расширение. Это норма для Unix-систем, но в Windows это не норма.
Порядок действий для создания .htaccess следующий:
  1. Открыть текстовый редактор (Notepad++ или Блокнот).
  2. В меню "Файл" выбрать "Сохранить как".
  3. В выпадающем списке "Тип файла" выбрать "Все файлы".
  4. Ввести в качестве имени .htaccess (точкаhtaccess).
  5. Нажать на кнопку "Сохранить".
Файл .htaccess создан.
Далее можно его вновь открывать в любом текстовом редакторе и редактировать.