Est-ce que mettre le HTML d'une page de redirection 301 dans un document remplira la même fonction qu'une vraie redirection 301?

15

Dans un débogueur Web, le code HTML d'une page de redirection 301 s'affiche comme suit:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.website.com/webpage.htm">here</a>.</p>
</body></html>

Je dois rediriger des pages html sans support serveur. Si je remplace les pages html par le code ci-dessus, cela fonctionnera-t-il de la même manière que l'écriture de redirections 301 en .htaccess sur apache? J'ai recherché ceci sur google, mais les sites parlant de 301 redirections ne couvraient pas cette option pour rediriger les pages html.

JMC
la source

Réponses:

18

Idéalement, vous enverrez un code d'état de réponse HTTP 301. Si vous ne pouvez pas le faire, une méta-actualisation immédiate fonctionnera également et sera comptabilisée comme une redirection 301 ou 302 selon le moteur de recherche .

<meta http-equiv="refresh" content="0;url=http://example.com/new.html">

Le taux de rafraîchissement doit être nul pour qu'il soit considéré comme une redirection 30x.

John Conde
la source
Merci, cet article décrit très bien le processus. 0 retarder la méta-actualisation dans mon exemple html ci-dessus = le pauvre 301.
JMC
10

Non, le simple remplacement du code HTML par votre exemple n'obtiendra pas l'effet recherché. Il montrera simplement cette page à l'utilisateur, car Apache enverra un code d'état «200» avec lui. Les utilisateurs pourront cliquer sur le lien pour trouver la page, mais cela ne se fera pas automatiquement et les araignées ne sauront pas que vous voulez effectuer une redirection permanente de la ressource.

Vous devrez utiliser une directive de redirection ou _mod_rewrite_ appropriée dans .htaccess ou vos fichiers de configuration Apache .

Alternativement, si vous utilisez réellement PHP ou quelque chose de similaire, vous pouvez définir le code de retour sur 301, générer un en- tête de réponse d' emplacement et votre solution basée sur la page fonctionnera. En PHP, cela ressemblerait à ceci:

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.new-url.com" );
Hissohathair
la source
+1 Bons points sur le code de statut 200. Je n'y ai pas pensé. Malheureusement, c'est un serveur IIS et je n'ai pas accès plus profondément que ftp. Les pages sont .html donc une redirection asp ne sera pas traitée.
JMC
Dans ce cas, la réponse de John Conde est la meilleure - j'avais oublié l'équivalence du méta-rafraîchissement.
Hissohathair
3

Soyez d'accord avec Hissohathair en ce que votre approche ne sera pas réellement redirigée. Les utilisateurs peuvent savoir cliquer sur le lien, mais la page d'origine renverra toujours un code d'état normal «200» et continuera à s'afficher dans les résultats de recherche (probablement pas tout à fait ce que vous voulez).

Afin de maintenir le classement des pages, 301 codes d'état sont extrêmement importants. L'ajout de balises meta refresh est également une bonne option et peut aider dans la plupart des cas (selon la réponse de John), mais vous ne pouvez pas être garanti que les moteurs de recherche l'accepteront comme redirection 301 à l'avenir. L'ajout de redirections appropriées à votre .htaccess (ou fichiers de configuration Apache) serait votre meilleure option afin de garantir l'envoi du code d'état 301.

Éditer:

=======================

Pour un site Web IIS7, tant que le module de réécriture d'URL IIS est installé, vous pouvez créer des règles de redirection dans le fichier web.config pour le site. Ces règles s'appliqueraient également aux fichiers .html. Plus d'infos ici:

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

=======================

Une autre alternative si votre hébergeur n'a pas de capacités .htaccess / mod_rewrite pourrait être de changer l'hébergeur que vous utilisez où vous pouvez configurer des redirections côté serveur. Tant que le site est correctement déplacé, il devrait être assez transparent pour vos utilisateurs. Cette approche ne serait valable que pour les cas extrêmes si le maintien du classement des pages est très critique.

Rob
la source