В этой статье собраны все способы перенаправления (редиректа) пользователей или просто http-запросов. Если что-то было упущено — пишите комментарием, и я дополню обзор.
JavaScript
Загрузить страницу в окне можно следующими способами:
Код:
location="http://bormotuhi.net";
document.location.href="http://bormotuhi.net";
window.location.reload("http://bormotuhi.net");
document.location.replace("http://bormotuhi.net");
Редирект на 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://bormotuhi.net");
}
</script>
ColdFusion
301-редирект с помощью coldfusion:
Код:
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://bormotuhi.net">
Meta теги
Код:
<meta http-equiv="refresh" content="1; url=http://bormotuhi.net">
Здесь:
content - время, в секундах, через которое произойдёт переход (в текущем случае 1); url - адрес, на который произойдёт переход. Стоит осмотрительно использовать этот способ, так как он "пользуется успехом" у спамеров - соответственно может наказываться поисковыми системами.
ASP
301-редирект с помощью asp:
Код:
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://bormotuhi.net"
response.end
%>
PHP
Переадресация на php реализуется с помощью функции header, отсылающей заголовки:
PHP код:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://bormotuhi.net");
exit();
?>
Ниже представлен вариант 301-переадресации с сохранением запрашиваемой страницы и get-параметров:
PHP код:
<?php
$str=$_SERVER['QUERY_STRING'];
if ($str!='') $str='?'.$str;
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://bormotuhi.net/'.$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.bormotuhi.net на
http://bormotuhi.net:
Код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.bormotuhi.net$ [NC]
RewriteRule (.*) http://bormotuhi.net/$1 [R=301]
.htaccess
Перенаправление всех запросов на другой адрес:
Код:
redirect / http://bormotuhi.net
Переадресация при запросе определённых страниц:
Код:
redirect /pages http://bormotuhi.net/pages
redirect /forum http://forum.bormotuhi.net
или:
Код:
redirect 301 / http://bormotuhi.net
Чтобы перенаправить только одну страницу, сохранив PR старой:
Код:
redirect 301 /old-page.html http:// bormotuhi.net /new-page.html
Автор: 3hrek