Я нашел несколько различных решений того, что должно быть написано в файле .htaccess, но по какой-то причине они не работают идеально.
Я хочу перенаправить весь контент со старого сайта на новый - www.oldsite.com/first/article для перенаправления на www.newsite.com/first/article
и так далее. Я слышал, что это правильный способ постоянного перенаправления при перемещении сайта с одного домена на другой с точки зрения SEO, чтобы поисковые системы не дублировали контент и не наказывали за это.
Так что, если кто-нибудь может предоставить рабочий код, это было бы здорово. Объяснения того, почему это сработает и что это означает, относятся к категории «крутизна».
спасибо кучу.
PS, у меня уже включен mod_rewrite.
я очень предложить Джона Грубера Использование перенаправления .htaccess для стандартизации адресов веб-серверов. Раздел «ИЗБАВЛЕНИЕ ПРЕФИКСОВ WWW» дает простой пример простой перезаписи, которая вам нужна, с четким объяснением.
Вы можете заменить www\.oldsite\.com
для www\.daringfireball\.net
и www.newsite.com
для daringfireball.net
соответственно, в его примере, давая вам следующее:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.oldsite\.com$
RewriteRule (.*) http://www.newsite.com/$1 [R=Permanent]
Или в разделе «ПЕРЕНАПРАВЛЕНИЕ С‘ .COM ’НА‘ .NET ’» он объясняет, как использовать mod_alias, чтобы делать именно то, что вы просите, следующим образом:
RedirectMatch permanent (.*) http://www.newsite.com$1
Его статья представляет собой отличный обзор обоих методов и дает вам знания, чтобы выбрать тот, который работает лучше всего (очевидно, что mod_alias - более короткая реализация, но, на мой взгляд, mod_rewrite, как правило, более гибкая в долгосрочной перспективе). Он также ссылается на отличные mod_rewrite Шпаргалка.
Создайте файл .htaccess с кодом, приведенным ниже. Это гарантирует, что все каталоги и страницы на вашем старом домене будет правильно перенаправлять на ваш новый домен. Файл .htaccess необходимо поместить в корневой каталог вашего старого веб-сайта (то есть в тот же каталог, где находится ваш индексный файл).
Options +FollowSymLinks
# RewriteEngine on - You have this enabled already, so this is not required.
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
ЗАМЕНИТЕ www.newdomain.com в приведенном выше коде фактическим доменным именем.