Nouveau WRInaute
Bonjour à tous,
Après avoir cherché dans le forum, je n'ai rien vu qui corresponde à mon problème, donc j'ouvre un nouveau sujet pour faire appel à vos bonnes âmes. Mes excuses si le sujet existe déjà ailleurs. :?
Quand j'ai codé mon site (HTML+CSS), j'ai fait l'erreur de débutant (ce que je suis ) de mettre des espaces dans les noms de mes pages web.
Je sais que c'est une belle bavure, mais j'étais seul et sans accès internet quand j'ai dû faire ce site, donc j'ai improvisé avec des livres pour apprendre, faute de mieux, et ils ne mentionnaient pas les problèmes liés aux caractères spéciaux. L'erreur est faite, et maintenant il faut que je répare. Je dépends professionnellement de ce site et je ne peux vraiment pas me permettre de perdre du ranking.
Avec l'expérience, et voulant corriger diverses erreurs (changement de nom de pages, redirection d'adresse sans "www" vers "www.", et redirection de Index.html vers la racine du site pour éviter les doublons) et remplacer les anciennes pages par des pages sans espaces dans les noms, j'ai tenté une redirection 301 dans le .htaccess.
Mais les noms des pages ayant des espaces entre les mots font que les noms des pages sont retranscrits soit avec des espaces soit avec des "%20", et font que soit le .htaccess n'est pas pris en compte quand je veux rediriger vers la nouvelle page (d'où une erreur 404), soit j'obtiens une erreur 500 (merci les "%"...).
Concrètement, mon htaccess donne ça :
RewriteEngine on
RewriteCond %{HTTP_HOST} ^monsite.com [NC]
RewriteRule ^(.*)$ http://www.monsite.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/Index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)Index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]
Redirect 301 /Ancien nom1.html http://www.monsite.com/Nouveau-nom1.html
Redirect 301 /Ancien nom2.html http://www.monsite.com/Nouveau-nom2.html
Redirect 301 /Ancien nom3.html http://www.monsite.com/Nouveau-nom3.html
Clairement le Redirect 301 ne fonctionne pas, ici, mais je ne comprends pas pourquoi. Quelle serait la bonne formulation ?
Où me suis-je encore planté, svp ? Avez-vous une autre solution pour remplacer mes pages aux noms "mal formulés" par des nouvelles aux noms correctement formulés sans perdre mon webranking, et sans que .htaccess ne plante tout le serveur, svp ? :cry:
Merci d'avance à ceux qui voudront bien me répondre.
Après avoir cherché dans le forum, je n'ai rien vu qui corresponde à mon problème, donc j'ouvre un nouveau sujet pour faire appel à vos bonnes âmes. Mes excuses si le sujet existe déjà ailleurs. :?
Quand j'ai codé mon site (HTML+CSS), j'ai fait l'erreur de débutant (ce que je suis ) de mettre des espaces dans les noms de mes pages web.
Je sais que c'est une belle bavure, mais j'étais seul et sans accès internet quand j'ai dû faire ce site, donc j'ai improvisé avec des livres pour apprendre, faute de mieux, et ils ne mentionnaient pas les problèmes liés aux caractères spéciaux. L'erreur est faite, et maintenant il faut que je répare. Je dépends professionnellement de ce site et je ne peux vraiment pas me permettre de perdre du ranking.
Avec l'expérience, et voulant corriger diverses erreurs (changement de nom de pages, redirection d'adresse sans "www" vers "www.", et redirection de Index.html vers la racine du site pour éviter les doublons) et remplacer les anciennes pages par des pages sans espaces dans les noms, j'ai tenté une redirection 301 dans le .htaccess.
Mais les noms des pages ayant des espaces entre les mots font que les noms des pages sont retranscrits soit avec des espaces soit avec des "%20", et font que soit le .htaccess n'est pas pris en compte quand je veux rediriger vers la nouvelle page (d'où une erreur 404), soit j'obtiens une erreur 500 (merci les "%"...).
Concrètement, mon htaccess donne ça :
RewriteEngine on
RewriteCond %{HTTP_HOST} ^monsite.com [NC]
RewriteRule ^(.*)$ http://www.monsite.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/Index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)Index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]
Redirect 301 /Ancien nom1.html http://www.monsite.com/Nouveau-nom1.html
Redirect 301 /Ancien nom2.html http://www.monsite.com/Nouveau-nom2.html
Redirect 301 /Ancien nom3.html http://www.monsite.com/Nouveau-nom3.html
Clairement le Redirect 301 ne fonctionne pas, ici, mais je ne comprends pas pourquoi. Quelle serait la bonne formulation ?
Où me suis-je encore planté, svp ? Avez-vous une autre solution pour remplacer mes pages aux noms "mal formulés" par des nouvelles aux noms correctement formulés sans perdre mon webranking, et sans que .htaccess ne plante tout le serveur, svp ? :cry:
Merci d'avance à ceux qui voudront bien me répondre.