web-dev-qa-db-fra.com

301 redirige les pages asp vers html

J'ai donc repensé un site qui a été construit avec uniquement .asp pages et refaites-le avec .html pages. J'ai supprimé l'ancien site et téléchargé le nouveau, et téléchargé mon .htaccess fichier avec le code suivant:

Redirect 301 /studio.asp /studio.html

etc.

Je m'attendais à ce que lorsque je cliquais sur une entrée Google, elle redirigerait l'ancien /studio.asp page à /studio.html mais ce n'est pas le cas? Qu'est-ce que je fais mal? Je dois dire que j'ai essayé de conserver autant que possible les noms de fichiers et l'ancienne structure dans la refonte, mais cela montre toujours l'ancien .asp pages. Ou ai-je raté quelque chose entièrement ici? Mon ancien site doit-il toujours être en ligne pour que les redirections fonctionnent? Est-il même important que l'ancienne extension de fichier soit .asp? Il se trouve toujours sur la même URL également.

2
mhcoder36

La réponse que vous voyez pour l'ancien .asp les pages semblent être la réponse 404 standard sur votre serveur (ou plutôt un proxy Nginx frontal par l'apparence). Vous semblez obtenir la même réponse quelle que soit la page inexistante que vous demandez. Donc, cela ne se limite pas à .asp pages. Cette réponse 404 est une page "contenant un domaine" avec des publicités externes externes - ce qui n'est pas souhaitable, mais peut-être quelque chose qui vous est imposé par votre hôte?

Edit: Tout en demandant d'autres pages 404, j'ai parfois reçu une réponse "502 Bad Gateway" ou "503 Service Unavailable". Ce n'est pas non plus souhaitable (et non normal).

Vous devez vérifier avec votre hôte ce qui se passe ici.

Vous n'avez pas besoin que l'ancien site soit présent pour implémenter des redirections à partir des anciennes URL. C'est tout l'intérêt d'une redirection externe.

L'hôte a déclaré qu'il avait "migré le site vers un serveur Linux à partir d'un serveur Windows ... afin de pouvoir utiliser htaccess". Cela impliquerait que vous êtes migré vers Apache (ou peut-être LiteSpeed).

Je suppose que c'est un serveur "partagé". Dans quel cas .htaccess les fichiers doivent déjà être activés.

Si la .htaccess le fichier existe dans la racine du document de votre site, puis la directive Redirect que vous avez postée dans la question, à savoir:

Redirect 301 /studio.asp /studio.html

c'est vraiment tout ce dont vous avez besoin pour rediriger depuis /studio.asp à /studio.html.

Si cela ne se produit pas, alors encore une fois, vous devez interroger cela avec votre hôte.


MISE À JOUR: Mon fournisseur d'hébergement estime que c'est parce que j'ai .rtf extension sur le fichier lorsque le fichier est activé. Le truc c'est que je l'ai supprimé sur mon bureau donc ça montre juste .htaccess mais il apparaît toujours comme .htaccess.rtf lors du téléchargement sur le serveur. ... J'ai utilisé TextEdit sur le mac.

Oui, c'est certainement un problème! Si le fichier est appelé .htaccess.rtf sur le serveur, il ne sera tout simplement jamais traité par Apache et il ne fera rien (ce qui est le comportement que vous voyez - rien). Il doit s'appeler .htaccess - Pas plus; non moins avec un point comme premier caractère. Mais aussi, il ne doit pas être formaté en tant que fichier RTF (Rich Text Format). Il doit être en "texte brut", de préférence encodé en UTF-8.

  1. Assurez-vous que votre Mac affiche des extensions de fichier:
    https://www.idownloadblog.com/2014/10/29/how-to-show-or-hide-filename-extensions-in-os-x-yosemite/

  2. Assurez-vous que TextEdit est configuré pour modifier des fichiers de texte brut:
    https://youtu.be/zCN75v4Bbdk

Recréez le fichier localement avec le nom de fichier correct. Supprimez le fichier mal nommé sur le serveur et téléchargez à nouveau!

(Comment avez-vous édité et téléchargé tous les autres fichiers sur votre site?!)

1
MrWhite