Редирект или принудительная переадресация
Для начала расскажем, что такое редирект. Редирект - (Англ. Redirect - перенаправление) программное решение или скрипт, который автоматически (принудительно) перенаправляет пользователя с выбранной веб-страницы на другую веб-страницу.
Редирект обычно используется при переносе сайта на новый домен, чтобы не потерять посетителей сайта по старому адресу, так как все они будут автоматически перенаправляются на новый домен.
- Мы рассмотрим четыре способа осуществления редиректа:
- Использование тега <meta>;
- 301 редирект с помощью .htaccess;
- Редирект при помощи PHP;
- Редирект при помощи JavaScript.
Самым простым способом является добавление в шапку сайта между тегами <head></head> следующего кода:
<meta http-equiv="Refresh" content="5; URL=http://usefulscript.ru/forum/index.php">
Где content="5; URL=http://usefulscript.ru/forum/index.php" означает, что через пять секунд посетитель данной странички будет автоматически перенаправлен на новую страничку с адресом http://usefulscript.ru/forum/index.php.
Но есть один маленький недостаток данного метода - не передается PR. Также при смене домена, данную строчку необходимо будет прописать на всех страничках сайта. В подобных случаях (при смене домена) лучше воспользоваться 301 редиректом при помощи файла .htaccess. Для этого пропишите в файле .htaccess, расположенного на сервере в корневой папке сайта, следующие строки:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Еще 301 редирект при помощи файла .htaccess может быть полезен, если вы хотите слить доменные имена сайта с www и без него. Делается это при помощи добавления в файл .htaccess, расположенного на сервере в корневой папке сайта, следующего кода:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^usefulscript\.ru
RewriteRule ^(.*)$ http://www.usefulscript.ru/$1 [R=permanent,L]
Для получения редиректа при помощи PHP, воспользуйтесь следующим PHP кодом:
<?php
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://newdomain.com/'.$ref);
exit();
?>
Для получения редиректа при помощи JavaScript, воспользуйтесь следующим кодом:
<b>Мы переехали на новый домен.<br>
Через 5 сек. произойдет автоматическое перенаправление!</b>
<script type="text/javascript">
function redirect() {
location="http://usefulscript.ru";
}
setTimeout('redirect()', 5000);
</script>
В результате выполнения данного JavaScript кода, пользователь увидит сообщение о смене домена, после чего, через пять секунд его автоматически перенаправит на новый адрес.
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Redirect 301 /stat/page.htm http://www.sait.ru/question/page.htm
Все хорошо, но конечная ссылка, на которую производится переход после редиректа, выглядит как:
http://www.sait.ru/question/page.htm?url=stat/page.htm
Как избавится от этого вопроса и ненужного окончания?
Если можно, то ответ на почту, так как не нашел как подписаться на комментарии.
Redirect 301 /stat http://www.sait.ru/question/
А еще лучше поищите в коде что-нибудь похожее на $_SERVER['HTTP_REFERER'], возможно где-то к адресу прибавляется эта переменная.
Подскажите, а если сайт заблокированный Роскомнадзором. Как сделать правильный редирект да так чтобы редирект сработал.
Ведь почему-то редирект не успевает сработать, сразу выскакивает ограничение провайдера.
Но вот было замечено на других сайтах (с блокировкой) - что редирект работает!
Спасибо.