301 редірект у файлі .htaccess

28 вересня 2023 р.

SEO

Taras Soros

27 переглядів

Загальні правила 301 редіректу можна прописувати у файлі .htaccess. Це серверний файл програми Apache, який допомагає керувати вмістом каталогів сайтів і його під папок. Він являється типовою панеллю налаштування у вигляді редакторського файлу, в якому можна частково керувати серверними параметрами, тобто змінювати їх за потреби.

Якщо до кінця не розуміти роботу файлу .htaccess, я б не радив робити будь-які зміни у файлі, через те, що це, саме та можливість зламати сайт з кінцями.

Якщо все-таки вам потрібно робити зміни у файлі, радимо перед тим зробити копію файлу.

При розвертанні WordPress на хостингу в каталозі сайту можна побачити .htaccess файл. В ньому вже будуть прописані базові налаштування для ефективної роботи даної CMS. Проте, якщо ви будете додатково встановлювати різні плагіни, файл .htaccess може бути перезаписаний. Так само перезаписувати або ж дописувати файл можете і ви для своїх потреб, наприклад, написати редірект для сайту, про що і піде мова дальше.

Редірект в .htaccess

Перед тим як описати деякі правила вводу редіректу, хочу зазначити те, що, наприклад у CMS WordPress є безліч плагінів як SEO, так і звичайних, які дозволяють прописувати переадресацію сторінок безпосередньо в адмін-панелі. Тобто, вам не потрібно шукати файл .htaccess і боятися, що щось піде не так. Так як плагіни зроблять всю роботу за вас, вам буде достатньо прописати тільки початкову і кінцеву сторінку.

Якщо варіант з плагінами не влаштовує, давайте переглянемо які є найпоширеніші команди для переадресації сторінок через файл .htaccess. Погнали.

Перенаправлення однієї сторінки

Redirect 301 /pagename.php http://www.domain.com/pagename.html

Copy

Перенаправлення всього сайту або домену на новий домен сайту

Redirect 301 / http://www.domain.com/

Copy

Перенаправлення всього сайту на підпапку

Redirect 301 / http://www.domain.com/subfolder/

Copy

Перенаправлення підпапки на інший веб-сайт

Redirect 301 /subfolder http://www.domain.com/

Copy

Перенаправлення розширення файлу зі збереженням назви сторінки

Приклад: Якщо ви хочете, щоб розширення .html використовувало те саме ім'я файлу, але використовувало розширення .php.

RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php

Copy

Редірект зі старого домену на новий

RewriteEngine on
RewriteBase /
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

Copy

Перенаправлення з не-www на www субдомен

RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

Copy

Перенаправлення домену на www з підкаталогом

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]

Copy

Перенаправлення зі старого домену на новий домен, який містить повний шлях

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]

Copy

Перенаправлення зі старого домену з підкаталогом на новий домен без підкаталогу, але з повним шляхом

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]

Copy

Перенаправлення URL-адрес із параметрами запиту з файлами, розміщеними в кореневому каталозі

Приклад: оригінальний URL http://www.website.com/index.php?id=3 і нова URL-адреса http://www.website.com/path-to-new-location/

RewriteEngine on
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]

Copy

Перенаправлення URL-адрес із параметрами запиту та розміщення файлів у підкаталозі

Приклад: оригінальний URL http://www.website.com/sub-dir/index.php?id=3 і нова URL-адреса http://www.website.com/path-to-new-location/

RewriteEngine on
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]

Copy

Перенаправлення сайту на HTTPS з HTTP

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Copy

Видалення index.html або index.php і перенаправлення на головну

RewriteEngine On
RewriteCond %{THE_REQUEST} /index.php HTTP [NC]
RewriteRule (.*)index.php$ /$1 [R=301,L]

Copy

RewriteEngine On
RewriteCond %{THE_REQUEST} /index.html HTTP [NC]
RewriteRule (.*)index.html$ /$1 [R=301,L]

Copy

Перенаправлення URL-адрес із параметрами до структури на основі каталогу, зберігаючи рядок запиту

Приклад: оригінальний URL http://www.website.com/index.php?id=100 і нова сторінка http://www.website.com/100/

RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]

Copy

Перезапис URL-адреси з параметром структури на основі каталогу зберігаючи параметри рядка запиту в підкаталозі URL-адреси

Приклад: оригінальний URL http://www.website.com/index.php?category=fish нова сторінка http://www.website.com/category/fish/

RewriteEngine On
RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]

Copy

Редірект старого сайту на новий домен і повернення URL

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]

If you do not want to pass the path to the new domain, change the last line to:
RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]

Copy

Добавлення слешу до URL

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

Copy

Перенаправлення з блогу піддомену на папку блог

Приклад: Редірект з blog.oldsite.com на www.newsite.com/blog/

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}/ blog
RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]

Copy

Перенаправлення одного каталогу на інший

Options +FollowSymLinks RewriteEngine On RewriteRule ^(.*)/old-directory/(.*)$ $1/new-directory/$2 [R,L]

Copy

В міру нових налаштувань, дані команди будуть поповнюватись.

Читайте також
301 редірект у файлі .htaccess 301 редірект у файлі .htaccess

Правила 301 редіректу можна прописувати у файлі .htaccess. Це серверний файл програми Apache.

Редірект: їхні типи та використання Редірект: їхні типи та використання

Редірект – це спосіб перенаправити користувачів, та пошукових роботів на іншу веб-сторінку

Пошукові оператори Google Пошукові оператори Google

Які є пошукові оператори, та як їх вводити. Використання пошукових операторів google для власної вигоди.