Пренасочване на домейн

Пиша тази статия като продължение на  Приложна магия с mod_rewrite в htaccess

Пренасочване на домейн

Както вече писах в статията Често срещани SEO грешки на бизнес сайтове в точка 2. Създаване на огледални сайтове често срещан проблем е повече от един URL адрес да сочи едно и също съдържание. Освен описания случай в статията, много често се случва нова фирма да купи няколко нови домейна като например targovskamarka.com, targovskamarka.net и targovskamarka.org и да ги насочи към едно и също IP и едни и същи файлове. В това число влиза и пренасочване на домейн от тип „Паркиране на домейн“. За избягване на наказание от Гугъл за дублиране на съдържание, идеалният случай е да се определи един от домейните като главен, а другите домейни да пренасочват към главния. Като изключително важно е пренасочването да бъде от тип 301 – permanent redirect. Нека в този пример главен домейн е targovskamarka.com. Дори да са на споделен хостинг трябва всеки от домейните да има различна уеб директория, като главния съдържа файловете, а тези които пренасочват съдържат в главната си уеб директория .htaccess файл като:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?targovskamarka\.(net|org)$ [NC]
RewriteRule ^(.*)$ http://targovskamarka.com/$1 [R=301,L]

Този .htaccess файл поставен в главната уеб директория на домейните които пренасочваш, ще ти помогне дори в случая, когато си направил грешката да размножиш файловете на сайта на няколко различни места. Освен това ще пренасочва не само главната страница, а и вътрешните страници. Например targovskamarka.net/contact.html вече ще сочи към targovskamarka.com/contact.html

Внимание: Тук има един тънък момент. Ако искаш targovskamarka.net/blog/ да бъде пренасочен към targovskamarka.com/blog/ задължително трябва да изтриеш .htaccess файла в директория blog на стария домейн targovskamarka.net. Същото се отнася и за други поддиректории в които има .htaccess файлове.

Преминаване към нов домейн

Както вече сигурно се досети подобен на горния .htaccess файл се ползва и в случаите, когато преместваш сайта си на нов домейн. Например досега си ползвал domain-bg.com и вече притежаваш domain.bg. Новия домейн .bg е по престижен, затова го направи главен, а стария пренасочи към новия. Не е нужно новия домейн да бъде на друг хостинг. Може да го насочиш към същия IP адрес и от cpanel на хостинга да си добавиш новия домейн като addon домейн. Ако нямаш право на повече addon домейни ще трябва да си доплатиш на хостинг доставчика за още един домейн.

Би трябвало при такова пренасочване новият домейн да наследи всички активи на връзките към стария домейн. Все пак те съветвам да промениш на колкото повече места можеш връзките да сочат директно към новия домейн и да не минават през пренасочване. След като копираш файловете на сайта на новата уеб директория и направиш това пренасочване, увери се, че то работи – при написване на стария домейн в браузъра, той трябва да се подмени с новия. Ако всичко работи можеш да изтриеш всички файлове на сайта от старата уеб директория, като оставиш само файла .htaccess – това ще ти спести място на хостинга и ще избегнеш объркване да променяш старите файлове и да се чудиш защо сайта не се променя 😉

Дублиране на съдържание

За търсачките адресите domain.com,  www.domain.com, domain.com/index.html,  www.domain.com/index.html, domain.com/index.php и www.domain.com/index.php са различни адреси. Личното ми мнение е че Гугъл е достатъчно „умен“ и няма да изтълкува това като дублиране на съдържание. По мои наблюдения Гугъл се справя и с още по сложни URI адреси като domain.com/index.php?lang=bg или www.domain.com/?lang_id=2, които също сочат началото на сайта и по-точно българската версия и са точно като страницата domain.com. Въпреки това ако те гони параноя, че Гугъл ще решат друго и се страхуваш от наказание заради дублиране на съдържание, може да използваш следния .htaccess файл.

Options +FollowSymlinks -Indexes
RewriteEngine On
RewriteCond %{THE_REQUEST} /index\.(php|html)\ HTTP/
RewriteRule ^index\.(php|html)$ / [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Нали не е нужно да ти казвам да замениш domain.com с твоя домейн? 🙂 В този пример като приоритет се задава изписване на домейна като domain.com вместо www.domain.com – по-кратко и по-удобно е. Време е всички да се отървем от досадното „www.“. Ако все пак по някаква странна причина искаш твоя домейн да се изписва само като www.domain.com ще трябва да замениш последните два реда със следните:

RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Ето още един начин това да стане. Долните два реда са еквивалент на горните два реда, като дори не е нужно да се посочва домейна. Отново се прави постоянно пренасочване на всеки URL адрес, към съответния URL адрес с  www. отпред.

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Съвет за уеб разработчиците

Като поставяш в кода връзка към началната страница не пиши „index.php“, а само „/“. Също така добра практика е всичките ти връзки да започват с / например пиши „/contact.php“ вместо „contact.php“. Връзките до картинките да започват с „/images“ вместо „images“ и по същия начин пиши „/css“ и „/js“ вместо само „css“ и „js“.

Поддомейн или директория

Често получавам въпроса blog.domain.com или domain.com/blog? Няма еднозначен отговор, защото зависи каква е целта ти.

1. Използване на поддомейн

Ако искаш новия поддомейн да се разглежда от търсачките като отделен сайт и да излиза в резултатите от търсене като още един резултат, тогава избери варианта с поддомейн. Възможно е поддомейна да задмине основния домейн и да излиза в SERP по-напред. Особено ако основния сайт не се променя толкова често както блога.

Ако до този момент си ползвал поддиректория и искаш вече да ползваш субдомейн. Първото което трябва да направиш е от cpanel да си добавиш поддомейна от Domains -> Subdomains. Нека за този пример поддомейна се казва „sub“. След това добави следния .htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^sub(/(.*))?$ http://sub.domain.com/$2 [R=301,L]

Ако случайно няма mod_rewrite може да се осъществи и с mod_dir като замениш последните 2 реда с:

Redirect 301 /sub http://sub.domain.com

2. Използване на поддиректория

Ако искаш да засилиш тежестта на основния домейн тогава избери варианта с директория. Всяка статия в блога ще носи тежест на домейна.

Ако до този момент си ползвал поддомейн и искаш да започнеш да ползваш поддиректория, като например пренасочване на sub.domain.com и www.sub.domain.com към domain.com/sub/, тогава ползвай следния .htaccess файл:

Options +FollowSymLinksRewriteEngine On
# изключение за оправяне на липсваща наклонена черта
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%2%{REQUEST_URI}/ -d
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L] 

# пренасочване на всички субдомейни към съответни поддиректории
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ /%2/$1 [QSA,L]

Това ще пренасочва не само поддомейна sub, а и всеки поддомейн, който имаш към съответната поддиректория. Ако притежаваш собствен DNS сървър, може да използваш горния .htaccess файл за създаване на виртуални поддомейни.

Поддомейн към директория

Ако искаш да пренасочиш само един поддомейн, Например само blog.domain.com да се отваря на domain.com/blog и всички останали поддомейни да си работят. Използвай кода:

 RewriteCond %{HTTP_HOST} ^blog\.domain\.com$
 RewriteCond %{REQUEST_URI} !^/blog/
 RewriteRule (.*) /blog/$1

Моля споделете тази статия, ако ви харесва.

Прочетена:14982
« Предишна публикация

Промяна на изображение

Нов безплатен уеб инструмент от ganbox.com за обработване на изображения. В главното меню на ganbox.com избери Промяна на снимка. В тази страница можеш да изпратиш снимка от твоя компютър и да зададеш промяна на размера или ... Повече информация »

Следваща публикация »

Гугъл трикове: правилно индексиране на сайт

Тази статия е за всички, които се интересуват от SEO и следят за своя сайт, колко от страниците са индексирани правилно в основния индекс на Google и колко от тях са влезли в допълнителни резултати. Ако ... Повече информация »

1 - лоша2 - слаба3 - средна4 - добра5 - отлична (Няма гласове. Дайте оценка първи!)
Loading...

8 коментара

  1. A.Slavov 30.01.2010
  2. WHS 22.06.2010
  3. gan 22.06.2010
  4. Anton Penev 25.08.2010
  5. gan 25.08.2010
  6. Мишо 01.09.2011
  7. scn 24.03.2013
споделиха