2013-06-14 5 views
2

Существует внешний веб-сайт, который перенаправляет весь свой трафик на веб-страницы на нашем сайте. Мы не можем контролировать это перенаправление, а URL-адреса контента зеркалируются следующим образом.Перенаправить весь трафик с внешнего домена на домашнюю страницу домена?

Когда пользователи идут к:

www.externaldomain.com/1234 

они получают перенаправлены:

www.ourdomain.com/1234 

, который иногда может быть несуществующие страницы и, таким образом, 404 возникает ошибка. Как я могу перенаправить весь трафик с externaldomain.com на домашнюю страницу ourdomain.com, чтобы убедиться, что мы не потеряем потенциальных пользователей?

Я знаю, что HTTP_REFERER вступает в игру, но у меня возникли проблемы с настройкой, чтобы она функционировала должным образом.

+0

Возможно, вам будет лучше задавать вопросы по http://webmasters.stackexchange.com/ –

+0

Вы пытаетесь перенаправить страницы, которые приводят только к 404 или всем упомянутым страницам? – nickhar

ответ

0

См this answer

Вы должны использовать modrewrite Апача:

RewriteEngine На

RewriteCond% {HTTP_REFERER}^mydomain.co.uk $ [N]

+0

Это не работает для меня. Я предполагаю, что этот код для другого случая. – Timus83

0
!

Наиболее важный вопрос, который задают здесь, заключается в том, хотите ли вы перенаправить весь трафик на свою домашнюю страницу или на определенные страницы, которые вы упомянули «иногда» не существует (404) - оба из которых отвечают здесь.

Перенаправление все называют трафик на домашнюю страницу из определенного внешнего домена

Где вам нужно перенаправить весь трафик с определенного домена (реферер), вы можете сделать следующее:

RewriteEngine On 
RewriteCond %{HTTP_REFERER} ^http://externaldomain\.com/ [NC] 
RewriteRule ^(.*) /index.php [R=301,L] 


Переадресация только 404 трафика ошибок на главную страницу из определенного домена

Если вы хотите перенаправить на этой основе затем использовать:

RewriteEngine On 
RewriteCond %{HTTP_REFERER} ^http://externaldomain\.com/ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) /index.php [R=301,L] 


Что касается Апач флагов, отмеченных выше:

[NC] = No case (or case insensitive) 
[L]  = If the rule matches, no further rules will be processed. 
[R=301] = Apply a 301 redirect* 

Вы можете найти более подробную/подробную информацию о Apache флагов here.


* Поисковая оптимизация для этих правил

Почему 301 перенаправление? - 301 перенаправление - это постоянная переадресация, которая передает более 90%% сока связи (или потенциал рейтинг мощности) на перенаправленную страницу. 301 относится к коду состояния HTTP для этого типа перенаправления. В большинстве случаев перенаправление 301 является лучшим методом реализации перенаправления на веб-сайте с точки зрения SEO.С точки зрения преимуществ, существует множество информации here о том, как использовать преимущества разных типов переадресации и обрабатывать их.

+0

Здравствуйте, nickhar, большое спасибо за объяснение, на самом деле мой случай - номер 1: перенаправление всего упомянутого трафика на главную страницу из определенного внешнего домена, однако ваш код не работает для меня. Он не перенаправляется на главную страницу, мой полный htaccess выглядит так: http://pastebin.com/sBAzM0jr – Timus83