- Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання Як налаштувати...
- Налаштування 301 редиректу в файлі .htaccess за допомогою директив
- Редирект за допомогою mod_rewrite і директиви RewriteRule
- Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias
- 301 редирект через скрипт шляхом передачі заголовків
- Кілька корисних порад, пов'язаних з налаштуванням редиректу
- Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання
- В яких випадках може знадобиться 301 редирект (PermamentRedirect)
- Налаштування 301 редиректу в файлі .htaccess за допомогою директив
- Редирект за допомогою mod_rewrite і директиви RewriteRule
- Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias
- 301 редирект через скрипт шляхом передачі заголовків
- Кілька корисних порад, пов'язаних з налаштуванням редиректу
- Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання
- В яких випадках може знадобиться 301 редирект (PermamentRedirect)
- Налаштування 301 редиректу в файлі .htaccess за допомогою директив
- Редирект за допомогою mod_rewrite і директиви RewriteRule
- Редирект за допомогою директив Redirect або RedirectPermanent модуля mod_alias
- 301 редирект через скрипт шляхом передачі заголовків
- Кілька корисних порад, пов'язаних з налаштуванням редиректу
Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання
Як налаштувати 301 редирект в htaccess і в скриптах - більше 18 прикладів використання - 2.5 out of 5 based on 8 votes
301 редирект (Permament Redirect) або 301 помилка повертається при зверненні користувача або пошукового робота за певним 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-адресу.
У разі настройки 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-адресу.
У разі настройки 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
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 йде, як правило, після "?