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

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

В этой статье я собрал воедино способы перенаправления (редиректа) страницы в браузере или просто 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.» из адреса - htaccess-редирект с 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

Редирект в Perl

С помощью meta-тега:

my $url="http://alt-f4.ru";
my $t=1; # время через которое переадресация сработает
print "\n";

С помощью заголовка:

use CGI;
my $query=new CGI;
print $query->redirect('http://alt-f4.ru');

Вот все основные способы редиректов для разных технологий. По просьбе в комментариях, добавил redirect на другую страницу на языке Perl. Надеюсь заметка будет полезной вам!

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <i> <strong> <b> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
CAPTCHA на основе изображений
Введите код с картинки