Все способы редиректа


Все способы редиректа

В этой статье я собрал воедино способы перенаправления (редиректа) браузера или просто http-запросов. Если что-то было упущено — пишите комментарием, и я дополню обзор.

JavaScript

Загрузить страницу в окне можно следующими способами:

  • location="http://alt-f4.ru";
  • document.location.href="http://alt-f4.ru";
  • window.location.reload("http://alt-f4.ru");
  • document.location.replace("http://alt-f4.ru");

Редирект на javascript подействует на браузер обычного пользователя (если включен js), но не на поискового робота. Этот факт используется при создании дорвеев.

Еще один способ перенаправления с помощью javascript - сабмит пустой формы: создается специальная форма с урлом назначения в параметре action и в требуемый момент эмулируется submit.

ASP.NET

301-редирект на asp.net:

<script runat="server">
private void Page_Load(object sender, System.EventArgs e) {
   Response.Status = "301 Moved Permanently";
   Response.AddHeader("Location","http://alt-f4.ru");
}
</script>

ColdFusion

301-редирект с помощью coldfusion:

<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://alt-f4.ru">

Meta теги

<meta http-equiv="refresh" content="1; url=http://alt-f4.ru">

Здесь 1 - время задержки в секундах. Стоит осмотрительно использовать этот способ, так как он "пользуется успехом" у спамеров - соответственно может наказываться поисковыми системами.

ASP

301-редирект с помощью asp:

<%@ Language=VBScript %>
<%
   Response.Status="301 Moved Permanently"
   Response.AddHeader "Location", "http://alt-f4.ru"
   response.end
%>

PHP

Переадресация на php реализуется с помощью функции header, отсылающей заголовки:

<?php
   header("HTTP/1.1 301 Moved Permanently");
   header("Location: http://alt-f4.ru");
   exit();
?>

Ниже представлен вариант 301-переадресации с сохранением запрашиваемой страницы и get-параметров:

<?php
$str=$_SERVER['QUERY_STRING'];
if ($str!='') $str='?'.$str;
   header('HTTP/1.1 301 Moved Permanently');
   header('Location: http://alt-f4.ru/'.$str);
   exit();
?>

.htaccess (mod_rewrite)

Следующая строки определяют, что все запросы, кроме запросов к файлам с расширениями .gif и .jpg, будут перенаправлены на файл index.php

RewriteEngine On
RewriteRule !.(gif|jpg)$ index.php

Если посетитель имеет IP-адрес 192.168.11.1, то ему будет открыта страница data.html:

SetEnvIf REMOTE_ADDR 192.168.11.1 REDIR="redir" 
RewriteCond %{REDIR} redir 
RewriteRule ^/$ /data.html

Удаление префикса «www.» из адреса - перенаправление с http://www.alt-f4.ru на http://alt-f4.ru:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.alt-f4.ru$ [NC]
RewriteRule (.*) http://alt-f4.ru/$1 [R=301]

.htaccess

Перенаправление всех запросов на другой адрес:

redirect / http://alt-f4.ru

Переадресация при запросе определённых страниц:

redirect /pages http://alt-f4.ru/pages
redirect /forum http://forum.alt-f4.ru

или:

redirect 301 / http://alt-f4.ru

Чтобы перенаправить только одну страницу, сохранив PR старой:

redirect 301 /old-page.html http://alt-f4.ur/new-page.html

Комментарии

location="http://alt-f4.ru";
document.location.href="http://alt-f4.ru";
window.location.reload("http://alt-f4.ru");
document.location.replace("http://alt-f4.ru");

скажите, это актуально ещё? этот редирект все ещё не действует на поискового робота?

Нет. Естественно, не действует. Но, если робот увидит такой скрипт (а он увидит - по кр. мере гугл) - сайт получит некоторый минус.

удобно использовать

location="http://alt-f4.ru";
document.location.href="http://alt-f4.ru";
window.location.load("http://alt-f4.ru"); // не reload!!!
document.location.replace("http://alt-f4.ru");

для предотвращения дублирования отправки данных методом POST

Тем более, если оформить в функцию

как на .net редиректить ТЕХ КТО ПРИШОЛ ПО ОПРЕДЕЛЁННОМУ ИМЕНИ? например тех КТО пришли по hope.sait.ru а нужно перенаправить на main.sait.ru/hope
а тех кто на main.sait.ru оставить на месте.

А КАК СДЕЛАТЬ ЧТОБЫ ОН ОТПРАВЛЯЛ НЕ НА ALT-F4 А НА МОЙ САЙТ????

А возможно сделать редирект по какому-то действию пользователя?

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешаю теги: <a> <em> <strong> <pre> <ul> <ol> <li>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.

Подробнее о форматировании

Image CAPTCHA
Регистр символов учитывается.