URL перенаправления htaccess 301 - PullRequest
4 голосов
/ 08 июля 2011

У меня небольшая дилемма.

Я работаю над проектом уже почти год, и у меня было старое доменное имя. Не зная, как Google проиндексировал весь сайт под старым доменом, что беспокоило меня. Я хочу разместить сайт на своем новом доменном имени, и я думаю, что 301 - это путь вперед. Мне нужно будет сделать это на каждой динамической странице. Хорошо, что структура страницы идентична.

Любые советы о том, как это сделать, будут очень благодарны.

Ответы [ 4 ]

6 голосов
/ 08 июля 2011

Лучший способ - создать файл .htaccess, если у вас его еще нет, и вставить его в папку html.

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteRule ^old/page new/page [R=301,L] #can copy and paste this as many times as needed

</IFModule>
5 голосов
/ 08 июля 2011

Это перенаправит все с olddomain.com на newdomain.com:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,QSA,L]

Вы можете поместить этот код mod_rewrite в .htaccess вашего старого домена.

2 голосов
/ 08 июля 2011

Если ваш хостинг не поддерживает mod_rewrite (да, есть такие хостинговые компании) или он не работает по какой-то странной и неизвестной причине, используйте простую и широко доступную директиву: Redirect или RedirectMatch .

Поместите такую ​​строку в ваш .htaccess на старом домене:

Redirect 301 / http://www.newdomain.com/

Приведенная выше строка перенаправит ВСЕ URL-адреса со старого домена в новый домен с кодом 301 (постоянное перенаправление), что является правильным с точки зрения SEO.

Если вам нужно перенаправить такую ​​отдельную страницу или указать ее в определенном новом месте, используйте такое правило (то же, что и выше, просто указав точный URL):

Redirect 301 /help-shipping.html http://www.newdomain.com/help/shipping.php

В руководстве Apache mod_rewrite есть страница: Когда НЕ использовать mod_rewrite . Этот конкретный сценарий указан там (Redirect намного легче , чем RewriteRule с точки зрения ресурсов, что может быть проблемой на очень загруженных серверах).

1 голос
/ 08 июля 2011

Есть способ сделать это через php (.htaccess - лучший), но это пригодилось мне один или два раза.

<?php
//this can be set however you need it to be
$dynamic_redirect = "http://foo.com".$your_variable; 
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$dynamic_redirect);
exit();
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...