2013-06-14 3 views
2

Il existe un site Web externe qui redirige tout son trafic vers des pages Web sur notre site. Nous ne pouvons pas contrôler cette redirection et les URL de contenu sont mises en miroir de la manière suivante.Rediriger tout le trafic vers un domaine externe vers la page d'accueil du domaine local?

lorsque les utilisateurs:

www.externaldomain.com/1234 

ils sont redirigés vers:

www.ourdomain.com/1234 

qui peut parfois être une page non et donc un existant 404 résultats d'erreur. Comment puis-je rediriger tout le trafic depuis la page d'accueil externaldomain.com vers ourdomain.com pour m'assurer de ne pas perdre d'utilisateurs potentiels?

Je sais que HTTP_REFERER entre en jeu, mais j'ai du mal à le configurer pour qu'il fonctionne correctement.

+0

Vous pourriez être une meilleure question pour http://webmasters.stackexchange.com/ –

+0

Etes-vous en train d'essayer de rediriger les pages qui ne donnent que 404 ou toutes les pages référées? – nickhar

Répondre

0

Voir this answer

Vous devez utiliser modrewrite de apache:

RewriteEngine On

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

+0

Celui-ci ne fonctionne pas réellement pour moi. Je suppose que ce code est pour un autre cas. – Timus83

0
!

La question la plus importante à poser ici est de savoir si vous souhaitez rediriger tout le trafic vers votre page d'accueil ou des pages spécifiques que vous avez mentionnées 'parfois' n'existe pas (404) - les deux qui sont répondus ici.

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

:

Réorientation tout, vous pouvez faire ce qui suit visé le trafic vers une page d'accueil d'un domaine externe spécifique

Si vous avez besoin de rediriger tout le trafic d'un domaine spécifique (referrer)
Réorientation seulement 404 trafic d'erreur à une page d'accueil d'un domaine spécifique

Si vous souhaitez rediriger sur cette base puis utilisez:

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


En ce qui concerne les drapeaux apache indiqués ci-dessus:

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

Vous pouvez trouver plus d'informations verbose/détaillées sur les drapeaux Apache here.


* Optimisation des moteurs de recherche de ces règles

Pourquoi une redirection 301? - Une redirection 301 est une redirection permanente qui passe plus de 90 +% de jus de lien (ou potentiel puissance de classement) à la page redirigée. 301 fait référence au code d'état HTTP pour ce type de redirection. Dans la plupart des cas, la redirection 301 est la meilleure méthode pour implémenter des redirections sur un site web en termes de référencement.En termes de bénéfice, il existe une mine d'informations sur comment capitaliser et traiter avec différents types de redirection.

+0

Bonjour nickhar, merci beaucoup pour une explication, en fait mon cas est le numéro 1: Rediriger tout le trafic référé à une page d'accueil à partir d'un domaine externe spécifique, mais votre code ne fonctionne pas pour moi. Il ne redirige pas vers la page d'accueil, mon htaccess complet ressemble à ça http://pastebin.com/sBAzM0jr – Timus83

Questions connexes