😎 » HTML5 » Разная информация » Настройка переадресации - разные способы
4 451 0  

Настройка переадресации - разные способы

Расмотрим какими способами можно настроить переадресацию на Вашем сайте.

Способ переадресации на самой странице:

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

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0;  URL=https://Адрес новой страницы">

<script language="jаvascript" type="text/jаvascript">
 location.replace("Адрес новой страницы"); 
 </script>

</head>
<body>

</body>
</html>

Переадресация через JS:

<script type="text/jаvascript">
  location.replace("http://www.example.com/");
</script>

или

<script type="text/jаvascript">
  setTimeout('location.replace("http://www.example.com/")', 5000);
</script>

Переадресация через рнр

<?php
  header("Location: http://www.example.com/");
  exit;
?>


// переадресовать с задержкой на 5 секунд
<?php
  header('Refresh: 5; URL=http://www.example.com/');
  echo 'Через 5 секунд Вы будете автоматически перенаправлены на другую страницу.';
  exit;
?>

Редирект через htaccess:

1) Переадресация со всех но одну другую:
Redirect Permanent / https://site.ua

3) Переадресация с одной страницы на другую
Redirect 301 /starts.html http://site.ua/hi.html

wassat На разных серверах могут быть разные настройки htaccess !!!


Примеры полезных переадресаций:

1. Вам нужно переадресовать все страницы с op=topic на страницу с ошибкой - 404.html
Например: /forum/?do=board&op=topic&id=344&utility=1&name=dovidka
=== Пишем:
RewriteCond %{QUERY_STRING} ^do=board
RewriteRule ^.*$ /404.html? [R=301,L]

=== чтобы в браузер отдавался ответ 404, пишем:
RewriteCond %{QUERY_STRING} ^do=board
RewriteRule ^.*$ /404.html? [R=404,L,NC]


Переадресацыя всех страниц с GET параметрами на нужную вам.

У меня была реальная проблема, мой сайт закрутили в пирамиде ссылок, на сайт ссылалось десятки тысяч страниц типа -
- /forum/away.php?s=https://www.topsexpics.eu, боротся через уддаления ссылок в гугл-вебмастере было нереально, гугл опустил сайт (наверное через уменьшение весса ссылок на 99.99%)...
Вместо отдачи ошибки 404 я все эти ссылки через редирект 301 пустил на главну страницу форума вот так. winked

RewriteCond %{QUERY_STRING} s=http
RewriteRule .* https://Ваш сайт/forum/? [R=301,L]

fellow Но потом пришлось перебросить на 404

Редирект с index.php на главную

Чтобы настроить его вам нужно прописать в вашем файле следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:

RewriteCond%{THE_REQUEST}^[A-Z]{3,9}\ /index\.php\ HTTP
RewriteRule^index\.php$ http://site.ru/ [R=301,L]

Если вам так же нужно сделать переадресацию с index.html, то просто в коде выше замените .php на .html

Склеиваем алиасы сайта

Если у вас несколько доменов и вы хотите все их перенаправлять на основной сайт, то используем:

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]

Обратите внимание на первые 2 строки, там указано зеркало в зоне .com, если у вас иная или несколько зон, то добавляем правила.

Редирект с www на без www

Этот способ я уже описывал ранее, но повторюсь. Для того, чтобы склеить зеркала и выбрать основным домен без www прописываем:

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

Редирект с домена без www на домен с www

Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:

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

301 редирект страниц со слэшем и без

Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:

RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_URI}^(.+)/$
RewriteRule^(.+)/$ /$1 [R=301,L]

Если вам нужно наоборот оставить слэш в конце урла, то вам нужен данный вариант:

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

Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:

RewriteCond%{REQUEST_URI}^(.*)//(.*)$RewriteRule.%1/%2[R=301,L]

где, «//» можно заменить на «—» или любые сдвоенные символы в урле.

Массовая замена категории

Бывает, что вы переименовали категорию, а за ней закреплены тысячи урлов. Чтобы не состарится во время написания тысяч одинаковых перенаправлений юзаем:

RewriteRule^(.*)/old-category/(.*)$ $1/new-category/$2 [R=301,L]

Если у вас категория идет сразу после домена (типа site.ru/category/), то используем другой вариант:

RewriteRule old-category /(.*)/ old-category /$1 [R=301,L]

Редирект на новую страницу

Самый простой редирект со страницы на страницу, для это просто пропишите так:

Redirect301/old-post.html http://new-site.ru/new-post.html

Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).

Редирект для url с параметрами

Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:

RewriteCond%{QUERY_STRING} sort=articles
RewriteRule.* http://site.ru/page.php? [R=301,L]

Работаем с расширениями

Убираем .html из url (для удаления .php не забудьте заменить $1.html на $1.php):

RewriteRule^(([^/]+/)*[^.]+)$ /$1.html [L]

Меняем .php на .html в урлах и наоборот (не забываем поменять местами в коде):

RedirectMatch301(.*)\.php$ http://www.site.com$1.html

Правильный 301 редирект на новый домен

Этот пункт я выделил отдельно, т.к. он больше связан с переносом на другой домен. Тут есть важный момент, это не упустить директиву по правке роботса — она указана на 3 строке кода.

RewriteCond%{REQUEST_FILENAME} robots.txt$ [NC]RewriteRule^([^/]+) $1 [L]RewriteCond%{HTTP_HOST}^site\.ru
RewriteRule^(.*)$ http://new-site.ru/$1 [R=301,L]RewriteCond%{HTTP_HOST}^www.site\.ru
RewriteRule^(.*)$ http://new-site.ru/$1 [R=301,L]

С помощью таких не хитрых махинаций мы избавимся от дублей страниц, тем самым улучшив нашу внутреннюю оптимизацию и соответственно качество сайта.



Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023