Redirect 301 / http://www.domainname.ru/или
redirect /secret http://www.site.ru/nosecretСтавится в файле .htaccess или httpd.conf для Apache. Первый "/" означает, что всё с верхнего уровня сайта, включая все подкаталоги, будет переадресовано (не забывайте поставить последний "/"). Если Вы хотите переадресовать только страницу, сохранив PR старой страницы, можно сделать так:
Redirect 301 /old/old.htm http://www.you.ru/new.htm где:
/old/old.htm - путь и имя старой страницы
http://www.you.com/new.htm - новый путь и новое имя перемещенной страницы
SetEnvIf REMOTE_ADDR 192.152.37.125 REDIR="redir" RewriteCond %{REDIR} redir RewriteRule ^/$ /user.php
RewriteEngine On RewriteRule !.(gif|jpg)$ index.php
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^yourdomain\.ru RewriteRule ^(.*)$ http://www.yourdomain.ru/$1 [R=permanent,L]
RedirectMatch 301 (.*) http://www.yourdomain.ru$1 Прописывается в файле .htaccess.(.*) RedirectMatch фактически соответствует регулярным образцам выражения после доменного имени. Таким образом, нельзя выполнить соответствие образца на ^/yourdomain.ru. Однако, можно преобразовать страницы с использованием .html расширения к файлам того же самого названия, но с .php расширением:
RedirectMatch 301 (.*)\.html$ http://www.yourdomain.ru$1.phpЕсли необходимо сделать различное перенаправление для отдельных страниц, можно использовать следующее:
RedirectMatch Permanent ^/html/resources.html$ http://www.newdomain.com/resources.php RedirectMatch Permanent ^/html/other_page.html$ http://www.newdomain.com/other_page.php RedirectMatch Permanent ^/(.*)$ http://www.newdomain.com/"RedirectMatch Permanent" - это эквивалент "RedirectMatch 301", строка с "*(Wildcard)" должна быть последней в этом списке.
RewriteEngine on RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]В следующем примере преобразуем www.site.ru/script.php?product=123 в www.site.ru/cat/product/123/:
RewriteRule cat/(.*)/(.*)/$ /script.php?$1=$2
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
Естественно, надо создать страницу, при обращении к которой и будет происходить Редирект, и разместить её на сервере. И лучше укажите HTTP/1.1 (а не HTTP/1.0 или HTTP/0.9, которые не поддерживают виртуальный хостинг) RewriteRule ^superdiscount(.*)$ /hot-offers.php [L,R=301]
RewriteRule ^superdiscount/my-ebook.html /hot-to-make-million.html [L,R=301] RewriteRule ^superdiscount(.*)$ /hot-offers.php [L,R=301]
RewriteRule ^article.jsp?id=(.*)$ /latestnews.htm [L,R=301]То есть теперь, запрос к файлу вида http://www.kass.ws/article.jsp?id=8632 и/или http://www.kass.ws/article.jsp?id=1245 будет отправлен на файл http://www.kass.ws/latestnews.htm.
RewriteRule ^/product-(.*)_([0-9]+).php /redirectold.php?productid=$2затем создаем PHP файл redirectold.php, который будет поддерживать 301 редирект:
<?php function getRedirectUrl($productid) { // Connect to the database $dServer = "localhost"; $dDb = "mydbname"; $dUser = "mydb_user"; $dPass = "password"; $s = @mysql_connect($dServer, $dUser, $dPass) or die("Couldn't connect to database server"); @mysql_select_db($dDb, $s) or die("Couldn't connect to database"); $query = "SELECT new_url FROM redirects WHERE old_id = ". $productid; mysql_query($query); $result = mysql_query($query); $hasRecords = mysql_num_rows($result) == 0 ? false : true; if (!$hasRecords) { $ret = 'http://www.yoursite.com/'; } else { while($row = mysql_fetch_array($result)) { $ret = 'http://www.yoursite.com/'. $row["new_url"]; } } mysql_close($s); return $ret; } $productid = $_GET["productid"]; $url = getRedirectUrl($productid); header("HTTP/1.1 301 Moved Permanently"); header("Location: $url"); exit(); ?>
Теперь все запросы к вашим старым URL-ам будут вызывать redirectold.php, который найдет новый URL и вернет 301 ответ с вашей новой ссылкой.