Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання

  1. Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання Як налаштувати...
  2. Налаштування 301 редиректу в файлі .htaccess за допомогою директив
  3. Редирект за допомогою mod_rewrite і директиви RewriteRule
  4. Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias
  5. 301 редирект через скрипт шляхом передачі заголовків
  6. Кілька корисних порад, пов'язаних з налаштуванням редиректу
  7. Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання
  8. В яких випадках може знадобиться 301 редирект (PermamentRedirect)
  9. Налаштування 301 редиректу в файлі .htaccess за допомогою директив
  10. Редирект за допомогою mod_rewrite і директиви RewriteRule
  11. Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias
  12. 301 редирект через скрипт шляхом передачі заголовків
  13. Кілька корисних порад, пов'язаних з налаштуванням редиректу
  14. Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання
  15. В яких випадках може знадобиться 301 редирект (PermamentRedirect)
  16. Налаштування 301 редиректу в файлі .htaccess за допомогою директив
  17. Редирект за допомогою mod_rewrite і директиви RewriteRule
  18. Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias
  19. 301 редирект через скрипт шляхом передачі заголовків
  20. Кілька корисних порад, пов'язаних з налаштуванням редиректу

Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання

Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання - 2.5 out of 5 based on 8 votes

301 редирект (Permament Redirect) або 301 помилка повертається при зверненні користувача або пошукового робота за певним URL і вказує на те, що сайт або сторінка, до якого звертався користувач, був перенесений на нову адресу і більше не знаходиться за цією адресою. При цьому, пошуковий бот або користувач будуть перенаправлені на новий URL-адресу.

При цьому, пошуковий бот або користувач будуть перенаправлені на новий URL-адресу

У разі настройки 301 редиректу старий і новий адреса склеюються між собою, такі показники як ТИЦ і PageRank, сторінки і сайту, а також контрольний вагу будуть передані новому URL.

В яких випадках може знадобиться 301 редирект (PermamentRedirect)

Можна перерахувати безліч ситуацій, коли веб-майстру знадобиться використовувати перенаправлення 301. Серед найбільш поширених випадків можна виділити наступні:

1. При перенесенні сайту на іншу CMS;

2. При зміні доменного імені сайту, за допомогою 301 редіректу можна зберегти всі наявні показники старого домену і перенести їх на новий. При цьому як пошукові системи так і користувачі будуть автоматично перенаправляти до нового домену.

3. Якщо склеюються домени без www з www. При цьому також всі показники цих цих копій сайтів будуть поєднуватися.

4. У разі перенесення сторінки всередині сайту на новий URL

В Яндекс і Google редирект 301, як правило, передає:

  • контрольний вагу
  • ТІЦ сайту і PR сторінок

Однак є речі, які перенаправленням не передаються на новий URL-адресу, до них відносяться:

  • Санкції, які були накладені на домен сайту
  • Вік (якщо був змінений домен). Проте, якщо редирект був налаштований в межах одного доменного імені, з однієї сторінки на іншу, то даний показник передається.

Коли редирект буде встановлено, користувачі будуть перенаправлятися з старого URL-адреси на новий. При подальшому відвідуванні про це дізнаються пошукові роботи. Вони отримують сигнал, в якому зазначається нова адреса сторінки, тепер є основним. На нього «перетікають» всі основні показники.

Теми стосуються редиректу, є дуже актуальними і часто піднімаються на тематичних форумах іноді там створюються цілі розділи, присвячені їм.

Далі ми розглянемо як налаштувати 301 редирект і наведемо ряд готових, робочих рішень, які можуть стати в нагоді в тому чи іншому випадку.

Налаштування 301 редиректу в файлі .htaccess за допомогою директив

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

Єдиною умовою є наявність включених модулів mod_alias і / або mod_rewrite в файлі php.ini. Вони включені на більшості хостингів тому можете сміливо приступати до настроювань.

Файл .htaccess знаходиться в кореневій папці вашого сайту. На сьогоднішній день він є практично у всіх сучасних CMS. Якщо у вашому випадку його немає, то просто створіть текстовий документ і змініть його розширення і назва на .htaccess (точка попереду обов'язкове). Після цього ви можете прописувати в нього наведені нижче приклади для створення того чи іншого редиректу. Детальніше про .htaccess читайте в матеріалі - " Файл htaccess - настройка і приклади використання ".

При використанні, прикладів коду "vash-sait.ru" замініть на доменне ім'я вашого сайту.

Редирект за допомогою mod_rewrite і директиви RewriteRule

Щоб використовувати директиву RewriteRule на хостингу повинен бути підключений модуль mod_rewrite і включена опція FollowSymLinks включена, а в файлі httpd.conf. Багато хто не підозрює, але з даним модулем доводиться стикатися частіше, ніж можна собі уявити, наприклад при використанні ЧПУ посилань в CMS Joomla або WordPress.

Для настройки перенаправлень в файлі htaccess, вам можуть стати в нагоді такі оператори регулярних виразів:

  • . - будь-який символ
  • $ - обмеження справа
  • ^ - обмеження зліва
  • - 0 і більше символів
  • + - 1 і більше символів
  • [] - діапазон значень
  • \ - екранування
  • () - змінна

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

Дуже часто 301 редирект використовується, для склеювання адрес сайту з www і без них. Раніше пошукові системи сприймали це як абсолютно різні сайти, зараз вони навчилися визначати дзеркала сайту, але краще вказати їм на правильне дзеркало, щоб не було плутанини ні у вас ні у них.

Незважаючи на те, що www все ще зустрічається в адресах деяких сайтів, якщо веб-ресурс створюється з самого початку, то краще не використовувати www в адресі сайту і зробити відповідне перенаправлення.

Але якщо ви працюєте зі старим сайтом, який вже проіндексовані в пошуковій системі, то необхідно дивитися якого виду URL - и йдуть на сайт з пошукової видачі і на такому варіанті зупиниться. Щоб не робити ніяких різких кардинальних рухів.

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

Але мені подобається інший, більш зрозумілий синтаксис:

RewriteEngine On RewriteCond% {HTTP_HOST} ^ www.vash-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://vash-sait.ru/$1 [R = 301, L]

2. Редірект домену без www на домен з www.

RewriteEngine On RewriteCond% {HTTP_HOST} ^ vash-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://www.vash-sait.ru/$1 [R = 301, L]

Або, по типу першого, альтернативний варіант

RewriteEngine On RewriteCond% {HTTP_HOST}! ^ Www \. (. *) [NC] RewriteRule ^ (. *) $ Http: //www.%1/$1 [R = 301, L]

3. Перенаправлення сторінки з ЧПУ URL -ом на іншу сторінку з ЧПУ URL -ом

Сьогодні багато CMS дозволяють використовувати ЧПУ посилання і часто на увазі певних обставин доводиться міняти одну адресу сторінки на інший. Нижче наведено варіант редиректу сторінки http://vash-sait.ru/optimizatsiya-stranitsy.html на сторінку http://vash-sait.ru/seo-optimizatsiya-stranitsy.html.

RewriteEngine On RewriteRule ^ (. *) Optimizatsiya-stranitsy.html $ http://vash-sait.ru/seo-optimizatsiya-stranitsy.html [R = 301, L]

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

У деяких випадках потрібно змінити один домен сайту на інший. У такому випадку потрібно встановити 301 перенаправлення зі старого домену на новий. Прописати представлений нижче код потрібно в файлі .htaccess старого сайту.

RewriteEngine on RewriteCond% {HTTP_HOST} ^ www \ .staryy-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://novyy-sait.ru/$1 [L, R = 301] RewriteCond% {HTTP_HOST } ^ staryy-sait \ .ru $ [NC] RewriteRule ^ (. *) $ http://novyy-sait.ru/$1 [L, R = 301]

У наведеному прикладі старий домен з www і без www буде перенаправлений на новий домен без www.

5. Редірект домену аліаса на основний домен

Іноді для сайту використовується не один, а кілька доменів т. Е. Використовуються так звані аліаси або синоніми домену. Для цього домени можуть реєструватися в декількох зонах vash-sait.ru, vash-sait.com і прілінковивают до однієї директорії сайту на хостингу. В цьому випадку будуть 2 або більше точних копії сайту з одним і тим же фалом .htaccess.

І так як це дуже погано з позиції SEO оптимізації, то необхідно вибрати якийсь основний домен і зробити на його редирект. Наприклад якщо основний домен vash-sait.ru, то зробити, на нього редирект з vash-sait.com і www.vash-sait.com можна наступним чином:

RewriteEngine On RewriteCond% {HTTP_HOST} ^ vash-sait.com $ [OR, NC] RewriteCond% {HTTP_HOST} ^ www.vash-sait.com $ [NC] RewriteCond% {REQUEST_URI}! ^ / Robots. * RewriteRule ^ ( . *) $ http://vash-sait.ru/$1 [R = 301, L]

6. Редірект сторінок з розширенням .htm на сторінки з раcшіреніем .html

У деяких випадках це може служити запорукою щодо появи в індексі дублів сторінок з розширенням .htm.

RewriteEngine on RewriteBase / RewriteRule ^ (. *) \. Htm $ $ 1.html [R = 301, L]

7. Редірект сторінки vash-sait.ru/index.php на vash-sait.ru

Таким чином можна прибрати дублі головної сторінки такого типу, які можуть з'явиться в деяких випадках в індексі.

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

Якщо потрібно склеїти дублі виду vash-sait.ru/home.html на vash-sait.ru

RewriteEngine On RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / home \ .html \ HTTP / RewriteRule ^ home \ .html $ http://vash-sait.ru/ [R = 301, L]

8. Редірект URL -ла з параметром на будь-яку іншу сторінку сайту.

Якщо URL -ли сторінок вашого сайту містять параметри, то при необхідності можна зробити редирект сторінки з певним параметром на будь-яку іншу сторінку. Наприклад сторінки http://vash-sait.ru/index.php?section=1 на з сторінку http://vash-sait.ru/index.php?section=2 Параметр в URL йде, як правило, після "? " в даному випадку це section = 1, сам код буде таким:

RewriteEngine On RewriteCond% {QUERY_STRING} section = 1 RewriteRule ^ index.php http://vash-sait.ru/index.php?section=2 [R = 301, L]

Крім цього URL з параметром можна перенаправити на головну сторінку сайту наступним чином:

RewriteEngine On RewriteCond% {QUERY_STRING} section = 1 RewriteRule ^ index.php http://vash-sait.ru/? [R = 301, L]

Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias

Директива Redirect здійснює простий редирект відвідувача і пошукового робота на новий URL.

Синтаксис цієї директиви наступний: Redirect [status] URL-path URL.

Умовні позначення:

  • URL - нова адреса веб-документа або сторінки
  • URL-path - стару адресу запитуваної документа
  • Status - код повернення, проте є необов'язковим полем і може бути відсутнім. Допустимими значеннями є: 301 - постійне перенесення, 302 - тимчасовий перенесення, 410 або gone - видалений, 303 або seeother - дивіться інший.

Прописується директива все в тому ж файлі .htaccess.

1. Редірект з однієї сторінки на іншу

Дуже простий спосіб недоліком якого є лише те, що якщо потрібно перенаправити багато сторінок, для кожної окремої сторінки потрібно створювати цю строчку коду.

Redirect 301 /category/staraya-stranitsa.html http://vash-sait.ru/category/novaya-stranitsa.html

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

Для цього в файлі .htaccess старого домену пропишіть наступне:

Redirect 301 / http://vash-sait.ru

3. Переведення каталогу

Redirect 301 / category http://vash-sait.ru/novaya-category/

Redirect permanent - це деректіва оворящая, що сторінка переміщена.

синтаксис:

Redirect permanent URL-path URL

URL-path: локальна частина URL документа з якого повинен бути зроблений редирект.

URL: URL куди повинен бути виконаний редирект.

Записується все по аналогії з директивою Redirect, але код повернення вказувати вже не потрібно. Для редиректу однієї сторінки на іншу записується так:

Redirect permanent /staraya-stranitsa.html http://vash-sait.ru/novaya-stranitsa.html

301 редирект через скрипт шляхом передачі заголовків

Вся робота 301 перенаправлення через скрипти PHP, ASP, JavaScript полягає в передачі клієнту, т. Е. Браузеру або пошуковому роботу певних заголовків:

HTTP / 1.1 301 Moved Permanently Location: http://vash-sait.ru/category/novaya-stranitsa.html

Наведемо приклади редиректу для різних скриптів

1. 301 редирект на PHP.

Цей код найкраще поміщати в самий початок скрипта PHP файлу. Замість http://vash-sait.ru/novaya-stranitsa.html потрібно вказати адресу сторінки куди повинен бути перенаправлений користувач або пошуковий бот.

<? Php header ( "HTTP / 1.1 301 Moved Permanently"); header ( "Location: http://vash-sait.ru/novaya-stranitsa.html"); exit (); ?>

2. Редірект на ASP

<% @ Language = VBScript%> <% Response.Status = "301 Moved Permanently" Response.AddHeader "Location", "http://vash-sait.ru/novaya-stranitsa.html" response.end%>

3. Редірект ASP.NET

<Script runat = "server"> private void Page_Load (object sender, System.EventArgs e) {Response.Status = "301 Moved Permanently"; Response.AddHeader ( "Location", "http://vash-sait.ru/novaya-stranitsa.html"); } </ Script>

4. Для Ruby on Rails

def old_action headers [ "Status"] = "301 Moved Permanently" redirect_to "http://vash-sait.ru/novaya-stranitsa.html" end

5. Для JSP (Java)

<% Response.setStatus (301); response.setHeader ( "Location", "http://vash-sait.ru/novaya-stranitsa.html"); response.setHeader ( "Connection", "close"); %>

6. Для CGI PERL

$ Q = new CGI; print $ q-> redirect ( "http://vash-sait.ru/novaya-stranitsa.html");

7. ColdFusion редирект

<.Cfheader statuscode = "301" statustext = "Moved permanently"> <.cfheader name = "Location" value = "http://vash-sait.ru/novaya-stranitsa.html">

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

1. Використовувати описані вище методи можна лише в тому випадку, якщо ресурс розташований на Linux-сервері і використовує Apache. При цьому обов'язково повинні бути підключені модулі mod_rewrite і mod_alias.

2. Замість файлу .htaccess є ще один спосіб настройки 301 перенаправлення - внесення змін до файл hpptd.conf, це трохи більш ефективно так як використання файлу .htaccess створює невелику додаткове навантаження на сервер.

3. Якщо робота редиректу некоректна, необхідно переконатися, що в інших файлах ніде не прописаний інший редирект, так як їх конфлікт може стати причиною великого числа непередбачених проблем.

4. Перш ніж налаштувати 301 -й редирект рекомендується ознайомитися з офіційною документацією, в якій прописані синтаксис і основні правила. Але при бажанні, можна поекспериментувати, перебрати кілька можливих варіантів і як то кажуть "методом тику" домогтися потрібного результату.

5. Налаштувавши редирект, необхідно перевірити, чи все працює. Потрібно відвідати головну сторінку сайту, побігати по розділах, різних сторінок, щоб бути впевненим, що у користувача не виникне ніяких проблем.

Пропонуємо Вам ознайомитися:

подробиці

Опубліковано 04 Жовтень 2013

Оновлено: 27 Листопад 2013

Переглядів: 54872

Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання

Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання - 2.5 out of 5 based on 8 votes

301 редирект (Permament Redirect) або 301 помилка повертається при зверненні користувача або пошукового робота за певним URL і вказує на те, що сайт або сторінка, до якого звертався користувач, був перенесений на нову адресу і більше не знаходиться за цією адресою. При цьому, пошуковий бот або користувач будуть перенаправлені на новий URL-адресу.

При цьому, пошуковий бот або користувач будуть перенаправлені на новий URL-адресу

У разі настройки 301 редиректу старий і новий адреса склеюються між собою, такі показники як ТИЦ і PageRank, сторінки і сайту, а також контрольний вагу будуть передані новому URL.

В яких випадках може знадобиться 301 редирект (PermamentRedirect)

Можна перерахувати безліч ситуацій, коли веб-майстру знадобиться використовувати перенаправлення 301. Серед найбільш поширених випадків можна виділити наступні:

1. При перенесенні сайту на іншу CMS;

2. При зміні доменного імені сайту, за допомогою 301 редіректу можна зберегти всі наявні показники старого домену і перенести їх на новий. При цьому як пошукові системи так і користувачі будуть автоматично перенаправляти до нового домену.

3. Якщо склеюються домени без www з www. При цьому також всі показники цих цих копій сайтів будуть поєднуватися.

4. У разі перенесення сторінки всередині сайту на новий URL

В Яндекс і Google редирект 301, як правило, передає:

  • контрольний вагу
  • ТІЦ сайту і PR сторінок

Однак є речі, які перенаправленням не передаються на новий URL-адресу, до них відносяться:

  • Санкції, які були накладені на домен сайту
  • Вік (якщо був змінений домен). Проте, якщо редирект був налаштований в межах одного доменного імені, з однієї сторінки на іншу, то даний показник передається.

Коли редирект буде встановлено, користувачі будуть перенаправлятися з старого URL-адреси на новий. При подальшому відвідуванні про це дізнаються пошукові роботи. Вони отримують сигнал, в якому зазначається нова адреса сторінки, тепер є основним. На нього «перетікають» всі основні показники.

Теми стосуються редиректу, є дуже актуальними і часто піднімаються на тематичних форумах іноді там створюються цілі розділи, присвячені їм.

Далі ми розглянемо як налаштувати 301 редирект і наведемо ряд готових, робочих рішень, які можуть стати в нагоді в тому чи іншому випадку.

Налаштування 301 редиректу в файлі .htaccess за допомогою директив

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

Єдиною умовою є наявність включених модулів mod_alias і / або mod_rewrite в файлі php.ini. Вони включені на більшості хостингів тому можете сміливо приступати до настроювань.

Файл .htaccess знаходиться в кореневій папці вашого сайту. На сьогоднішній день він є практично у всіх сучасних CMS. Якщо у вашому випадку його немає, то просто створіть текстовий документ і змініть його розширення і назва на .htaccess (точка попереду обов'язкове). Після цього ви можете прописувати в нього наведені нижче приклади для створення того чи іншого редиректу. Детальніше про .htaccess читайте в матеріалі - " Файл htaccess - настройка і приклади використання ".

При використанні, прикладів коду "vash-sait.ru" замініть на доменне ім'я вашого сайту.

Редирект за допомогою mod_rewrite і директиви RewriteRule

Щоб використовувати директиву RewriteRule на хостингу повинен бути підключений модуль mod_rewrite і включена опція FollowSymLinks включена, а в файлі httpd.conf. Багато хто не підозрює, але з даним модулем доводиться стикатися частіше, ніж можна собі уявити, наприклад при використанні ЧПУ посилань в CMS Joomla або WordPress.

Для настройки перенаправлень в файлі htaccess, вам можуть стати в нагоді такі оператори регулярних виразів:

  • . - будь-який символ
  • $ - обмеження справа
  • ^ - обмеження зліва
  • - 0 і більше символів
  • + - 1 і більше символів
  • [] - діапазон значень
  • \ - екранування
  • () - змінна

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

Дуже часто 301 редирект використовується, для склеювання адрес сайту з www і без них. Раніше пошукові системи сприймали це як абсолютно різні сайти, зараз вони навчилися визначати дзеркала сайту, але краще вказати їм на правильне дзеркало, щоб не було плутанини ні у вас ні у них.

Незважаючи на те, що www все ще зустрічається в адресах деяких сайтів, якщо веб-ресурс створюється з самого початку, то краще не використовувати www в адресі сайту і зробити відповідне перенаправлення.

Але якщо ви працюєте зі старим сайтом, який вже проіндексовані в пошуковій системі, то необхідно дивитися якого виду URL - и йдуть на сайт з пошукової видачі і на такому варіанті зупиниться. Щоб не робити ніяких різких кардинальних рухів.

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

Але мені подобається інший, більш зрозумілий синтаксис:

RewriteEngine On RewriteCond% {HTTP_HOST} ^ www.vash-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://vash-sait.ru/$1 [R = 301, L]

2. Редірект домену без www на домен з www.

RewriteEngine On RewriteCond% {HTTP_HOST} ^ vash-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://www.vash-sait.ru/$1 [R = 301, L]

Або, по типу першого, альтернативний варіант

RewriteEngine On RewriteCond% {HTTP_HOST}! ^ Www \. (. *) [NC] RewriteRule ^ (. *) $ Http: //www.%1/$1 [R = 301, L]

3. Перенаправлення сторінки з ЧПУ URL -ом на іншу сторінку з ЧПУ URL -ом

Сьогодні багато CMS дозволяють використовувати ЧПУ посилання і часто на увазі певних обставин доводиться міняти одну адресу сторінки на інший. Нижче наведено варіант редиректу сторінки http://vash-sait.ru/optimizatsiya-stranitsy.html на сторінку http://vash-sait.ru/seo-optimizatsiya-stranitsy.html.

RewriteEngine On RewriteRule ^ (. *) Optimizatsiya-stranitsy.html $ http://vash-sait.ru/seo-optimizatsiya-stranitsy.html [R = 301, L]

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

У деяких випадках потрібно змінити один домен сайту на інший. У такому випадку потрібно встановити 301 перенаправлення зі старого домену на новий. Прописати представлений нижче код потрібно в файлі .htaccess старого сайту.

RewriteEngine on RewriteCond% {HTTP_HOST} ^ www \ .staryy-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://novyy-sait.ru/$1 [L, R = 301] RewriteCond% {HTTP_HOST } ^ staryy-sait \ .ru $ [NC] RewriteRule ^ (. *) $ http://novyy-sait.ru/$1 [L, R = 301]

У наведеному прикладі старий домен з www і без www буде перенаправлений на новий домен без www.

5. Редірект домену аліаса на основний домен

Іноді для сайту використовується не один, а кілька доменів т. Е. Використовуються так звані аліаси або синоніми домену. Для цього домени можуть реєструватися в декількох зонах vash-sait.ru, vash-sait.com і прілінковивают до однієї директорії сайту на хостингу. В цьому випадку будуть 2 або більше точних копії сайту з одним і тим же фалом .htaccess.

І так як це дуже погано з позиції SEO оптимізації, то необхідно вибрати якийсь основний домен і зробити на його редирект. Наприклад якщо основний домен vash-sait.ru, то зробити, на нього редирект з vash-sait.com і www.vash-sait.com можна наступним чином:

RewriteEngine On RewriteCond% {HTTP_HOST} ^ vash-sait.com $ [OR, NC] RewriteCond% {HTTP_HOST} ^ www.vash-sait.com $ [NC] RewriteCond% {REQUEST_URI}! ^ / Robots. * RewriteRule ^ ( . *) $ http://vash-sait.ru/$1 [R = 301, L]

6. Редірект сторінок з розширенням .htm на сторінки з раcшіреніем .html

У деяких випадках це може служити запорукою щодо появи в індексі дублів сторінок з розширенням .htm.

RewriteEngine on RewriteBase / RewriteRule ^ (. *) \. Htm $ $ 1.html [R = 301, L]

7. Редірект сторінки vash-sait.ru/index.php на vash-sait.ru

Таким чином можна прибрати дублі головної сторінки такого типу, які можуть з'явиться в деяких випадках в індексі.

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

Якщо потрібно склеїти дублі виду vash-sait.ru/home.html на vash-sait.ru

RewriteEngine On RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / home \ .html \ HTTP / RewriteRule ^ home \ .html $ http://vash-sait.ru/ [R = 301, L]

8. Редірект URL -ла з параметром на будь-яку іншу сторінку сайту.

Якщо URL -ли сторінок вашого сайту містять параметри, то при необхідності можна зробити редирект сторінки з певним параметром на будь-яку іншу сторінку. Наприклад сторінки http://vash-sait.ru/index.php?section=1 на з сторінку http://vash-sait.ru/index.php?section=2 Параметр в URL йде, як правило, після "? " в даному випадку це section = 1, сам код буде таким:

RewriteEngine On RewriteCond% {QUERY_STRING} section = 1 RewriteRule ^ index.php http://vash-sait.ru/index.php?section=2 [R = 301, L]

Крім цього URL з параметром можна перенаправити на головну сторінку сайту наступним чином:

RewriteEngine On RewriteCond% {QUERY_STRING} section = 1 RewriteRule ^ index.php http://vash-sait.ru/? [R = 301, L]

Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias

Директива Redirect здійснює простий редирект відвідувача і пошукового робота на новий URL.

Синтаксис цієї директиви наступний: Redirect [status] URL-path URL.

Умовні позначення:

  • URL - нова адреса веб-документа або сторінки
  • URL-path - стару адресу запитуваної документа
  • Status - код повернення, проте є необов'язковим полем і може бути відсутнім. Допустимими значеннями є: 301 - постійне перенесення, 302 - тимчасовий перенесення, 410 або gone - видалений, 303 або seeother - дивіться інший.

Прописується директива все в тому ж файлі .htaccess.

1. Редірект з однієї сторінки на іншу

Дуже простий спосіб недоліком якого є лише те, що якщо потрібно перенаправити багато сторінок, для кожної окремої сторінки потрібно створювати цю строчку коду.

Redirect 301 /category/staraya-stranitsa.html http://vash-sait.ru/category/novaya-stranitsa.html

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

Для цього в файлі .htaccess старого домену пропишіть наступне:

Redirect 301 / http://vash-sait.ru

3. Переведення каталогу

Redirect 301 / category http://vash-sait.ru/novaya-category/

Redirect permanent - це деректіва оворящая, що сторінка переміщена.

синтаксис:

Redirect permanent URL-path URL

URL-path: локальна частина URL документа з якого повинен бути зроблений редирект.

URL: URL куди повинен бути виконаний редирект.

Записується все по аналогії з директивою Redirect, але код повернення вказувати вже не потрібно. Для редиректу однієї сторінки на іншу записується так:

Redirect permanent /staraya-stranitsa.html http://vash-sait.ru/novaya-stranitsa.html

301 редирект через скрипт шляхом передачі заголовків

Вся робота 301 перенаправлення через скрипти PHP, ASP, JavaScript полягає в передачі клієнту, т. Е. Браузеру або пошуковому роботу певних заголовків:

HTTP / 1.1 301 Moved Permanently Location: http://vash-sait.ru/category/novaya-stranitsa.html

Наведемо приклади редиректу для різних скриптів

1. 301 редирект на PHP.

Цей код найкраще поміщати в самий початок скрипта PHP файлу. Замість http://vash-sait.ru/novaya-stranitsa.html потрібно вказати адресу сторінки куди повинен бути перенаправлений користувач або пошуковий бот.

&lt;? Php header ( "HTTP / 1.1 301 Moved Permanently"); header ( "Location: http://vash-sait.ru/novaya-stranitsa.html"); exit (); ?>

2. Редірект на ASP

<% @ Language = VBScript%> <% Response.Status = "301 Moved Permanently" Response.AddHeader "Location", "http://vash-sait.ru/novaya-stranitsa.html" response.end%>

3. Редірект ASP.NET

<Script runat = "server"> private void Page_Load (object sender, System.EventArgs e) {Response.Status = "301 Moved Permanently"; Response.AddHeader ( "Location", "http://vash-sait.ru/novaya-stranitsa.html"); } </ Script>

4. Для Ruby on Rails

def old_action headers [ "Status"] = "301 Moved Permanently" redirect_to "http://vash-sait.ru/novaya-stranitsa.html" end

5. Для JSP (Java)

<% Response.setStatus (301); response.setHeader ( "Location", "http://vash-sait.ru/novaya-stranitsa.html"); response.setHeader ( "Connection", "close"); %>

6. Для CGI PERL

$ Q = new CGI; print $ q-> redirect ( "http://vash-sait.ru/novaya-stranitsa.html");

7. ColdFusion редирект

<.Cfheader statuscode = "301" statustext = "Moved permanently"> <.cfheader name = "Location" value = "http://vash-sait.ru/novaya-stranitsa.html">

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

1. Використовувати описані вище методи можна лише в тому випадку, якщо ресурс розташований на Linux-сервері і використовує Apache. При цьому обов'язково повинні бути підключені модулі mod_rewrite і mod_alias.

2. Замість файлу .htaccess є ще один спосіб настройки 301 перенаправлення - внесення змін до файл hpptd.conf, це трохи більш ефективно так як використання файлу .htaccess створює невелику додаткове навантаження на сервер.

3. Якщо робота редиректу некоректна, необхідно переконатися, що в інших файлах ніде не прописаний інший редирект, так як їх конфлікт може стати причиною великого числа непередбачених проблем.

4. Перш ніж налаштувати 301 -й редирект рекомендується ознайомитися з офіційною документацією, в якій прописані синтаксис і основні правила. Але при бажанні, можна поекспериментувати, перебрати кілька можливих варіантів і як то кажуть "методом тику" домогтися потрібного результату.

5. Налаштувавши редирект, необхідно перевірити, чи все працює. Потрібно відвідати головну сторінку сайту, побігати по розділах, різних сторінок, щоб бути впевненим, що у користувача не виникне ніяких проблем.

Пропонуємо Вам ознайомитися:

подробиці

Опубліковано 04 Жовтень 2013

Оновлено: 27 Листопад 2013

Переглядів: 54872

Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання

Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання - 2.5 out of 5 based on 8 votes

301 редирект (Permament Redirect) або 301 помилка повертається при зверненні користувача або пошукового робота за певним URL і вказує на те, що сайт або сторінка, до якого звертався користувач, був перенесений на нову адресу і більше не знаходиться за цією адресою. При цьому, пошуковий бот або користувач будуть перенаправлені на новий URL-адресу.

При цьому, пошуковий бот або користувач будуть перенаправлені на новий URL-адресу

У разі настройки 301 редиректу старий і новий адреса склеюються між собою, такі показники як ТИЦ і PageRank, сторінки і сайту, а також контрольний вагу будуть передані новому URL.

В яких випадках може знадобиться 301 редирект (PermamentRedirect)

Можна перерахувати безліч ситуацій, коли веб-майстру знадобиться використовувати перенаправлення 301. Серед найбільш поширених випадків можна виділити наступні:

1. При перенесенні сайту на іншу CMS;

2. При зміні доменного імені сайту, за допомогою 301 редіректу можна зберегти всі наявні показники старого домену і перенести їх на новий. При цьому як пошукові системи так і користувачі будуть автоматично перенаправляти до нового домену.

3. Якщо склеюються домени без www з www. При цьому також всі показники цих цих копій сайтів будуть поєднуватися.

4. У разі перенесення сторінки всередині сайту на новий URL

В Яндекс і Google редирект 301, як правило, передає:

  • контрольний вагу
  • ТІЦ сайту і PR сторінок

Однак є речі, які перенаправленням не передаються на новий URL-адресу, до них відносяться:

  • Санкції, які були накладені на домен сайту
  • Вік (якщо був змінений домен). Проте, якщо редирект був налаштований в межах одного доменного імені, з однієї сторінки на іншу, то даний показник передається.

Коли редирект буде встановлено, користувачі будуть перенаправлятися з старого URL-адреси на новий. При подальшому відвідуванні про це дізнаються пошукові роботи. Вони отримують сигнал, в якому зазначається нова адреса сторінки, тепер є основним. На нього «перетікають» всі основні показники.

Теми стосуються редиректу, є дуже актуальними і часто піднімаються на тематичних форумах іноді там створюються цілі розділи, присвячені їм.

Далі ми розглянемо як налаштувати 301 редирект і наведемо ряд готових, робочих рішень, які можуть стати в нагоді в тому чи іншому випадку.

Налаштування 301 редиректу в файлі .htaccess за допомогою директив

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

Єдиною умовою є наявність включених модулів mod_alias і / або mod_rewrite в файлі php.ini. Вони включені на більшості хостингів тому можете сміливо приступати до настроювань.

Файл .htaccess знаходиться в кореневій папці вашого сайту. На сьогоднішній день він є практично у всіх сучасних CMS. Якщо у вашому випадку його немає, то просто створіть текстовий документ і змініть його розширення і назва на .htaccess (точка попереду обов'язкове). Після цього ви можете прописувати в нього наведені нижче приклади для створення того чи іншого редиректу. Детальніше про .htaccess читайте в матеріалі - " Файл htaccess - настройка і приклади використання ".

При використанні, прикладів коду "vash-sait.ru" замініть на доменне ім'я вашого сайту.

Редирект за допомогою mod_rewrite і директиви RewriteRule

Щоб використовувати директиву RewriteRule на хостингу повинен бути підключений модуль mod_rewrite і включена опція FollowSymLinks включена, а в файлі httpd.conf. Багато хто не підозрює, але з даним модулем доводиться стикатися частіше, ніж можна собі уявити, наприклад при використанні ЧПУ посилань в CMS Joomla або WordPress.

Для настройки перенаправлень в файлі htaccess, вам можуть стати в нагоді такі оператори регулярних виразів:

  • . - будь-який символ
  • $ - обмеження справа
  • ^ - обмеження зліва
  • - 0 і більше символів
  • + - 1 і більше символів
  • [] - діапазон значень
  • \ - екранування
  • () - змінна

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

Дуже часто 301 редирект використовується, для склеювання адрес сайту з www і без них. Раніше пошукові системи сприймали це як абсолютно різні сайти, зараз вони навчилися визначати дзеркала сайту, але краще вказати їм на правильне дзеркало, щоб не було плутанини ні у вас ні у них.

Незважаючи на те, що www все ще зустрічається в адресах деяких сайтів, якщо веб-ресурс створюється з самого початку, то краще не використовувати www в адресі сайту і зробити відповідне перенаправлення.

Але якщо ви працюєте зі старим сайтом, який вже проіндексовані в пошуковій системі, то необхідно дивитися якого виду URL - и йдуть на сайт з пошукової видачі і на такому варіанті зупиниться. Щоб не робити ніяких різких кардинальних рухів.

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

Але мені подобається інший, більш зрозумілий синтаксис:

RewriteEngine On RewriteCond% {HTTP_HOST} ^ www.vash-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://vash-sait.ru/$1 [R = 301, L]

2. Редірект домену без www на домен з www.

RewriteEngine On RewriteCond% {HTTP_HOST} ^ vash-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://www.vash-sait.ru/$1 [R = 301, L]

Або, по типу першого, альтернативний варіант

RewriteEngine On RewriteCond% {HTTP_HOST}! ^ Www \. (. *) [NC] RewriteRule ^ (. *) $ Http: //www.%1/$1 [R = 301, L]

3. Перенаправлення сторінки з ЧПУ URL -ом на іншу сторінку з ЧПУ URL -ом

Сьогодні багато CMS дозволяють використовувати ЧПУ посилання і часто на увазі певних обставин доводиться міняти одну адресу сторінки на інший. Нижче наведено варіант редиректу сторінки http://vash-sait.ru/optimizatsiya-stranitsy.html на сторінку http://vash-sait.ru/seo-optimizatsiya-stranitsy.html.

RewriteEngine On RewriteRule ^ (. *) Optimizatsiya-stranitsy.html $ http://vash-sait.ru/seo-optimizatsiya-stranitsy.html [R = 301, L]

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

У деяких випадках потрібно змінити один домен сайту на інший. У такому випадку потрібно встановити 301 перенаправлення зі старого домену на новий. Прописати представлений нижче код потрібно в файлі .htaccess старого сайту.

RewriteEngine on RewriteCond% {HTTP_HOST} ^ www \ .staryy-sait \ .ru $ [NC] RewriteRule ^ (. *) $ Http://novyy-sait.ru/$1 [L, R = 301] RewriteCond% {HTTP_HOST } ^ staryy-sait \ .ru $ [NC] RewriteRule ^ (. *) $ http://novyy-sait.ru/$1 [L, R = 301]

У наведеному прикладі старий домен з www і без www буде перенаправлений на новий домен без www.

5. Редірект домену аліаса на основний домен

Іноді для сайту використовується не один, а кілька доменів т. Е. Використовуються так звані аліаси або синоніми домену. Для цього домени можуть реєструватися в декількох зонах vash-sait.ru, vash-sait.com і прілінковивают до однієї директорії сайту на хостингу. В цьому випадку будуть 2 або більше точних копії сайту з одним і тим же фалом .htaccess.

І так як це дуже погано з позиції SEO оптимізації, то необхідно вибрати якийсь основний домен і зробити на його редирект. Наприклад якщо основний домен vash-sait.ru, то зробити, на нього редирект з vash-sait.com і www.vash-sait.com можна наступним чином:

RewriteEngine On RewriteCond% {HTTP_HOST} ^ vash-sait.com $ [OR, NC] RewriteCond% {HTTP_HOST} ^ www.vash-sait.com $ [NC] RewriteCond% {REQUEST_URI}! ^ / Robots. * RewriteRule ^ ( . *) $ http://vash-sait.ru/$1 [R = 301, L]

6. Редірект сторінок з розширенням .htm на сторінки з раcшіреніем .html

У деяких випадках це може служити запорукою щодо появи в індексі дублів сторінок з розширенням .htm.

RewriteEngine on RewriteBase / RewriteRule ^ (. *) \. Htm $ $ 1.html [R = 301, L]

7. Редірект сторінки vash-sait.ru/index.php на vash-sait.ru

Таким чином можна прибрати дублі головної сторінки такого типу, які можуть з'явиться в деяких випадках в індексі.

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

Якщо потрібно склеїти дублі виду vash-sait.ru/home.html на vash-sait.ru

RewriteEngine On RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / home \ .html \ HTTP / RewriteRule ^ home \ .html $ http://vash-sait.ru/ [R = 301, L]

8. Редірект URL -ла з параметром на будь-яку іншу сторінку сайту.

Якщо URL -ли сторінок вашого сайту містять параметри, то при необхідності можна зробити редирект сторінки з певним параметром на будь-яку іншу сторінку. Наприклад сторінки http://vash-sait.ru/index.php?section=1 на з сторінку http://vash-sait.ru/index.php?section=2 Параметр в URL йде, як правило, після "? " в даному випадку це section = 1, сам код буде таким:

RewriteEngine On RewriteCond% {QUERY_STRING} section = 1 RewriteRule ^ index.php http://vash-sait.ru/index.php?section=2 [R = 301, L]

Крім цього URL з параметром можна перенаправити на головну сторінку сайту наступним чином:

RewriteEngine On RewriteCond% {QUERY_STRING} section = 1 RewriteRule ^ index.php http://vash-sait.ru/? [R = 301, L]

Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias

Директива Redirect здійснює простий редирект відвідувача і пошукового робота на новий URL.

Синтаксис цієї директиви наступний: Redirect [status] URL-path URL.

Умовні позначення:

  • URL - нова адреса веб-документа або сторінки
  • URL-path - стару адресу запитуваної документа
  • Status - код повернення, проте є необов'язковим полем і може бути відсутнім. Допустимими значеннями є: 301 - постійне перенесення, 302 - тимчасовий перенесення, 410 або gone - видалений, 303 або seeother - дивіться інший.

Прописується директива все в тому ж файлі .htaccess.

1. Редірект з однієї сторінки на іншу

Дуже простий спосіб недоліком якого є лише те, що якщо потрібно перенаправити багато сторінок, для кожної окремої сторінки потрібно створювати цю строчку коду.

Redirect 301 /category/staraya-stranitsa.html http://vash-sait.ru/category/novaya-stranitsa.html

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

Для цього в файлі .htaccess старого домену пропишіть наступне:

Redirect 301 / http://vash-sait.ru

3. Переведення каталогу

Redirect 301 / category http://vash-sait.ru/novaya-category/

Redirect permanent - це деректіва оворящая, що сторінка переміщена.

синтаксис:

Redirect permanent URL-path URL

URL-path: локальна частина URL документа з якого повинен бути зроблений редирект.

URL: URL куди повинен бути виконаний редирект.

Записується все по аналогії з директивою Redirect, але код повернення вказувати вже не потрібно. Для редиректу однієї сторінки на іншу записується так:

Redirect permanent /staraya-stranitsa.html http://vash-sait.ru/novaya-stranitsa.html

301 редирект через скрипт шляхом передачі заголовків

Вся робота 301 перенаправлення через скрипти PHP, ASP, JavaScript полягає в передачі клієнту, т. Е. Браузеру або пошуковому роботу певних заголовків:

HTTP / 1.1 301 Moved Permanently Location: http://vash-sait.ru/category/novaya-stranitsa.html

Наведемо приклади редиректу для різних скриптів

1. 301 редирект на PHP.

Цей код найкраще поміщати в самий початок скрипта PHP файлу. Замість http://vash-sait.ru/novaya-stranitsa.html потрібно вказати адресу сторінки куди повинен бути перенаправлений користувач або пошуковий бот.

&lt;? Php header ( "HTTP / 1.1 301 Moved Permanently"); header ( "Location: http://vash-sait.ru/novaya-stranitsa.html"); exit (); ?>

2. Редірект на ASP

<% @ Language = VBScript%> <% Response.Status = "301 Moved Permanently" Response.AddHeader "Location", "http://vash-sait.ru/novaya-stranitsa.html" response.end%>

3. Редірект ASP.NET

<Script runat = "server"> private void Page_Load (object sender, System.EventArgs e) {Response.Status = "301 Moved Permanently"; Response.AddHeader ( "Location", "http://vash-sait.ru/novaya-stranitsa.html"); } </ Script>

4. Для Ruby on Rails

def old_action headers [ "Status"] = "301 Moved Permanently" redirect_to "http://vash-sait.ru/novaya-stranitsa.html" end

5. Для JSP (Java)

<% Response.setStatus (301); response.setHeader ( "Location", "http://vash-sait.ru/novaya-stranitsa.html"); response.setHeader ( "Connection", "close"); %>

6. Для CGI PERL

$ Q = new CGI; print $ q-> redirect ( "http://vash-sait.ru/novaya-stranitsa.html");

7. ColdFusion редирект

<.Cfheader statuscode = "301" statustext = "Moved permanently"> <.cfheader name = "Location" value = "http://vash-sait.ru/novaya-stranitsa.html">

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

1. Використовувати описані вище методи можна лише в тому випадку, якщо ресурс розташований на Linux-сервері і використовує Apache. При цьому обов'язково повинні бути підключені модулі mod_rewrite і mod_alias.

2. Замість файлу .htaccess є ще один спосіб настройки 301 перенаправлення - внесення змін до файл hpptd.conf, це трохи більш ефективно так як використання файлу .htaccess створює невелику додаткове навантаження на сервер.

3. Якщо робота редиректу некоректна, необхідно переконатися, що в інших файлах ніде не прописаний інший редирект, так як їх конфлікт може стати причиною великого числа непередбачених проблем.

4. Перш ніж налаштувати 301 -й редирект рекомендується ознайомитися з офіційною документацією, в якій прописані синтаксис і основні правила. Але при бажанні, можна поекспериментувати, перебрати кілька можливих варіантів і як то кажуть "методом тику" домогтися потрібного результату.

5. Налаштувавши редирект, необхідно перевірити, чи все працює. Потрібно відвідати головну сторінку сайту, побігати по розділах, різних сторінок, щоб бути впевненим, що у користувача не виникне ніяких проблем.

Пропонуємо Вам ознайомитися:

подробиці

Опубліковано 04 Жовтень 2013

Оновлено: 27 Листопад 2013

Переглядів: 54872

Php?
Php?
Section=2 Параметр в URL йде, як правило, після "?
Php?
Ru/?
Lt;?
Php header ( "HTTP / 1.1 301 Moved Permanently"); header ( "Location: http://vash-sait.ru/novaya-stranitsa.html"); exit (); ?
Php?
Php?
Section=2 Параметр в URL йде, як правило, після "?