301 редирект: інструкція по налаштуванню
4.1. C допомогою файлу .htaccess (для веб-сервера Apache)
Як знайти файл .htaccess?
Як правило, файл розміщений в кореневій директорії сайту:
Щоб потрапити в кореневу папку сайту, ви можете використовувати кілька способів:
- Файловий менеджер хостингу;
- Підключитися через FTP клієнт;
- Використовувати SSH доступ.
Після знаходжень файлу достатньо натиснути на нього правкою кнопкою:
І вибрати редактіврованіе.
Отже, ми вже знайшли файл, відкрили його. Тепер ми можемо налаштувати 301 редирект. htaccess. Ми підготували 14 прикладів найбільш частого використання 301 редіректу.
Практичні приклади:
- Переведення з однієї статичної сторінки на іншу
Якщо вам необхідно встановити редирект з однієї сторінки на іншу - використовуйте даний код:
Приклад простого 301 редиректу:
Redirect 301 / page1 http://www.yousite.com/page2
* Сторінку, на яку йде переадресація повинна бути вказана через повний URL адресу.
або:
RewriteRule ^ page1 / page2 / $ 1 [R = 301, L]
Якщо ви виявили биту посилання на своєму сайті - ви можете перенаправити користувача на іншу сторінку за допомогою установки 301 редиректу.
Корисний матеріал по темі: Перевірка битих посилань: 8 способів для пошуку
- С без WWW на WWW / с WWW на без WWW
з WWW на без WWW: Варіант 1
RewriteEngine on
RewriteCond% {HTTP_HOST} ^ www \ .yousite \ .com $ [NC] RewriteRule ^ (. *) $ Http: // yousite.com / $ 1 [R = 301, L]
Варіант 2
RewriteEngine on
RewriteCond% {HTTP_HOST} ^ www \. (. *) [NC] RewriteRule ^ (. *) $ Http: //% 1 / $ 1 [R = 301, L]
варіант 3
RewriteEngine on
RewriteCond% {HTTP_HOST}! ^ Yousite \ .com $ [NC] RewriteRule ^ (. *) $ Http: // yousite.com / $ 1 [R = 301, L]
Для HTTPS-версії:
RewriteCond% {SERVER_PORT} ^ 80 $ [OR] RewriteCond% {HTTP} = on
RewriteRule ^ (. *) $ Https://yousite.com/$1 [R = 301, L]
без WWW на WWW:
Варіант 1
RewriteEngine on
RewriteCond% {HTTP_HOST} ^ yousite.com $ [NC] RewriteRule ^ (. *) $ Http: // www. yousite.com / $ 1 [R = 301, L]
Варіант 2
RewriteEngine on
RewriteCond% {HTTP_HOST}! ^ Www \. (. *) [NC] RewriteRule ^ (. *) $ Http: //www.%1/$1 [R = 301, L]
- З http на https / с https на http
з http на https:
RewriteCond% {HTTP: X-HTTPS}! 1
RewriteRule ^ (. *) $ Https: //% {HTTP_HOST} / $ 1 [R = 301, L]
з https на http:
Redirect HTTPS to HTTP
RewriteCond% {HTTP: X-Forwarded-Proto} = https
RewriteRule ^ (. *) $ Http: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]
- Редірект з одного домену на інший
Якщо ви вирішили змінити домен сайту і вам необхідно встановити 301 редирект зі старого на новий домен, скористайтеся кодом:
RewriteCond% {HTTP_HOST} ^ old-yousite \ .com $ [NC] RewriteRule ^ (. *) $ Http://www.new-yousite.com/$1 [R = 301, L]
- Редірект на піддомен
RewriteEngine On
RewriteBase /
RewriteCond% {HTTP_HOST} ^ (. +). Yousite.com $
RewriteRule (. *) Http: // yousite.com / $ 1? Region =% 1 [L, R = 301, QSA]
- Постранічний редирект
Найчастіший випадок використання 301 редіректу - це зміна домену сайту. Якщо ви проводите переїзд сайту на новий домен - вам обов'язково потрібно налаштувати посторінковий 301 редирект, давайте розберемося, як це зробити.
Постраничное перенаправлення настрівается також, як і редіректи з WWW на без WWW.
Варіант 1.
Використовуйте готовий код:
RewriteCond% {HTTP_HOST} ^ oldyousite \ .com
RewriteRule ^ (. *) $ Http://newyousite.com/$1 [R = 301, L] RewriteCond% {HTTP_HOST} ^ www.oldyousite \ .com
RewriteRule ^ (. *) $ Http://newyousite.ru/$1 [R = 301, L]
Варіант 2.
Згенеруйте код для вставки через цей сервіс:
Введіть адресу старого і нового домену і виберете 2 опції, які відображені на скріншоті. Після чого скопіюйте код і додайте його в файл .htaccess і збережіть зміни.
- Перенаправлення зі сторінки /index.php на головну сторінку
RewriteEngine On
RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / index \ .php \ HTTP /
RewriteRule ^ index \ .php $ http: // yousite.com / [R = 301, L]
- Редірект на головну
Буває, що є необхідність розмістити редирект з усіх сторінок одного домену на головну сторінку іншого домену, використовуйте цей код:
RewriteCond% {REQUEST_URI} (. *)
RewriteRule ^ (. *) $ Http://yousite.com/ [L, R = 301]
- Редірект на сторінку 404 помилки
Якщо необхідно встановити редирект з 404 помилки на конкретну встановлену сторінку, налаштування даний код:
ErrorDocument 404 /404.html
Корисна інформація по темі: Помилка 404: що означає, як знайти і налаштувати
- Редірект зі сторінок без / на сторінку зі / і навпаки
З про сторінок без / на сторінки з /:
Зверніть особливу увагу на цей редирект для уникнення появи дублікатів сторінок (пошукова система сприймає 1 сторінку зі слешем в кінці URL-адреси, і без слеші - як 2 окремі сторінки ), Щоб цього уникнути, використовуйте редирект:
приклад:
- yousite.com/page1/
- yousite.com/page1
Видалення слеша в кінці URL-a:
RewriteEngine On
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule ^ (. *) / $ / $ 1 [L, R = 301]
Додавання слеша в кінці URL-a:
RewriteCond% {REQUEST_FILENAME}! -F
RewriteRule ^ (. * [^ /]) $ / $ 1 / [L, R = 301]
Також ви можете скористатися даними сервісом для генерації потрібного коду:
- Редірект на мобільну версію сайту
Якщо ваш сайт працює на CMS, швидше за все у вас не буде необхідності вручну налаштовувати даний редирект, якщо ж ваш сайт самопісний - він буде корисний.
RewriteEngine On
RewriteCond% {HTTP_ACCEPT} "text \ / vnd \ .wap \ .wml | application \ / vnd \ .wap \ .xhtml \ + xml" [NC] RewriteCond% {REQUEST_URI} ^ / $
RewriteRule ^ http: //m.yousite.com% {REQUEST_URI} [R, L]
- Зміна розширення файлу c .php на .html
Часто, така необхідність виникає при зміна системи управління контентом (CMS), в такому випадку, використовуйте наступний редирект:
RedirectMatch 301 (. *) \. Php $ http: //www.yousite.com$1.html
Чи навпаки:
RedirectMatch 301 (. *) \. Html $ http: //www.yousite.com$1.php
Якщо ж вам потрібно прибрати, а не замінити розширення, наприклад .html з url (для видалення .php потрібно замінити $ 1.html на $ 1.php):
RewriteRule ^ (([^ /] + /) * [^.] +) $ /$1.html [L]
- Масовий редирект для категорії
Якщо категорія була перейменувала, але в ній були тисячі товарів (або публікацій) - використовуємо код нижче, щоб не прописувати перенаправлення для кожної сторінки окремо:
RewriteRule ^ (. *) / Old-category /(.*)$ $ 1 / new-category / $ 2 [R = 301, L]
Якщо категорія йде відразу після імені сайт (yousite.ru/category/), в такому випадку використовуємо:
RewriteRule old-category /(.*) / old-category / $ 1 [R = 301, L]
- Редірект для URL з параметрами
Наприклад, вам потрібно встановити редирект з http://yousite.com/page.php?sort=size. Параметр тут «sort = articles». Код буде наступним:
RewriteCond% {QUERY_STRING} sort = size
RewriteRule. * Http://yousite.com/page.php? [R = 301, L]
Com / $ 1?
Php?
Php?