2009-07-27 8 views
1

Hé les gars, j'ai une question concernant apache. J'ai un site qui a été repensé, mais je veux capturer tous les anciens liens que les gens ont mis en signet ou qui viennent des moteurs de recherche vers l'ancien site qui est sous un nouveau nom de domaine. Comment puis-je obtenir apache pour rediriger seulement 404 non trouvé sur l'ancien site?Rediriger 404 vers un autre domaine avec apache?

TIA,

J

+0

** edit: ** Merci pour les réponses à ce jour! Alors que la solution de @ seth fonctionnerait, à la recherche d'une solution spécifique à Apache. Le problème est que nous avons OldSite, qui est actuellement sur www.example.com et qui passe à old.example.com, et NewSite qui va aller sur www.example.com. Maintenant, je veux tout ce qui n'est pas sur le nouveau site (disons www.example.com/oldpage.html) pour aller à old.example.com. La solution semble être d'avoir des pages non sur le nouveau www.example.com 302 à old.example.com, alors avoir des pages dans ni retourner 404. Nous ne savons pas quelles pages seront dans l'application puisque c'est CMS conduit. –

Répondre

0

Vous pouvez définir votre 404 document à un CGI qui redirige l'utilisateur.

ErrorDocument 404 /cgi-bin/redirect-to-other.cgi 
1

Une autre option, similaire à celle proposée par @skiwi est d'ajouter le gestionnaire afin qu'il pointe vers une page html statique que vous pouvez utiliser pour expliquer à l'utilisateur ce qui se passe, et de les présenter avec des options.

Vous pouvez inclure une méta-redirection de sorte que si elles ne font rien après quelques secondes, elles sont automatiquement redirigées.

Quelle option fonctionnera le mieux est vraiment à vous de décider.

4

Votre ancien domaine doit capturer toutes les réponses et renvoyer une réponse '301 déplacé définitivement' avec le nouveau domaine dans le champ 'Emplacement' de l'en-tête. Un 404 signifie «non trouvé» et dans ce cas ce n'est pas strictement vrai.

+0

Cela fonctionnerait si je redirigeais vers une nouvelle URL, mais c'est le nouveau site qui reprend l'ancienne URL et l'ancien site qui va à une URL différente. Mettre un 301 déplacé de façon permanente ne fonctionnerait pas dans cette situation. –

+0

Ah, donc vous voulez 404 liens sur le nouveau site à transmettre à l'ancien site au nouveau domaine ... cela a du sens mais est différent de la façon dont j'ai compris votre problème :) – workmad3

5

Vous devez d'abord décider du code d'état que vous souhaitez envoyer. L'envoi d'un code d'état 404 et d'une redirection n'est pas possible.

Mais seth a déjà fait mention de la bonne méthode, la ErrorDocument directive:

# local path 
ErrorDocument 404 /local/path/to/error/document 
# external URI 
ErrorDocument 404 http://uri.example/to/error/document 

Si vous utilisez un chemin d'accès local, le code d'état 404 est envoyé. Si vous utilisez un URI absolu, un code d'état 302 (redirection temporaire) est envoyé.

Et si vous voulez envoyer une redirection 301:

Redirect 301/http://new.example.com/ 
Questions connexes