web-dev-qa-db-fra.com

Magento 1 ajoute une barre oblique à la fin de la page du CMS

J'utilise Magento 1.9 et j'ai un problème avec l'une de mes pages CMS. J'ai découvert que la page est disponible sous deux versions:

  • www.example.com/MyCMSpage

  • www.example.com/MyCMSpage/

Je ne suis pas sûr de savoir pourquoi le barre oblique à la fin de l'URL est présent. Les paramètres sous Admin> CMS> Pages> MyCMSpage> Informations sur la page> Clé URL ne contient pas le /.

Google voit cela comme deux pages différentes.

Comment puis-je résoudre le problème sans endommager le référencement de la page?

Je ne peux pas ajouter de lien canonique à la page avec / à la fin, car il n'existe pas dans la zone d'administration. Cependant, il est accessible via le Web et pointe sur le même contenu que l'URL sans le /.

Une redirection 301 résoudra-t-elle le problème sans dommages de référencement?

4
Greg

Oui, quelle que soit la façon dont cela est ajouté, une redirection 301 de

www.example.com/MyCMSpage/

à

www.example.com/MyCMSpage

devrait résoudre le problème sans que cela affecte votre référencement. Assurez-vous que la redirection est correcte afin d'éviter une redirection circulaire.

Remarque: Si la même page est répertoriée deux fois dans Google, Google en considérera une comme étant en double, ce qui pourrait affecter le PageRank des deux, en particulier si les deux sont identifiés comme canoniques. Donc, il vaut vraiment la peine d'ajouter la redirection pour résoudre ce problème, ou du moins jusqu'à ce que vous puissiez trouver la source du problème.

4
garth

J'ai réussi à résoudre le problème pernamently en ajoutant ceci à mon fichier .htaccess:

############################################
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/downloader.*$
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.*)/$ /$1 [L,R=301] 
############################################

J'espère que quelqu'un trouve cela utile.

1
Greg

Je pense que c'est quelque chose à voir avec la configuration de mon serveur, mais comme Google a déjà énuméré les pages deux fois ...

ça se passe sur toutes les pages du CMS.

Si Google a déjà trouvé et indexé les deux URL, cela signifie qu'il existe des liens (quelque part) vers les deux - internes ou entrants. Puisque vous dites que cela "se produit sur toutes les pages du CMS", cela signifie que c'est interne sur votre site. Si les liens visibles dans la page semblent corrects, avez-vous vérifié votre plan du site, vos flux RSS, etc.?

J'ai réussi à trouver une solution permanente [de redirection]

Ceci est un problème de Magento, pas un problème de serveur. Si tel est le cas, l’implémentation d’une redirection n’est qu’un correctif de bande passante. Elle n’est pas idéale si les utilisateurs recherchent et naviguent via ces URL erronées (les utilisateurs seront constamment redirigés et vos journaux d’accès seront pollués par des redirections 301). Cependant, donnez-vous un indice sur la façon dont ces URL sont découvertes). Vous n'allez pas aider les moteurs de recherche en créant des liens vers des URL redirigées (si c'est vraiment ce qui se passe).

Pour résoudre ce problème correctement, vous devez rechercher l'origine de ces URL erronées et les corriger à la source. (Conservez toujours la redirection 301 pour le référencement, car elles ont déjà été indexées.)

Ce n'est pas un problème de serveur parce que ...

  • Les serveurs ne génèrent pas comme par magie des liens vers vos pages.

  • Ce n'est pas le serveur qui rend ces URL "virtuelles/CMS" accessibles. Ce ne sera le serveur que si ces URL sont mappées sur des fichiers/répertoires physiques sur le système de fichiers (auquel cas le serveur contrôle des informations de chemin d'accès supplémentaires et des barres obliques du répertoire).

    C'est le CMS qui contrôle si les URL "virtuelles/CMS" (par exemple, /foo/bar et /foo/bar/) mappent vers la même ressource au moment où l'URL est routé via le CMS . C'est le CMS qui décide d'accepter ou de rejeter l'un ou l'autre ou les deux. En fait, le CMS doit prendre des mesures supplémentaires pour que cela se produise.

1
MrWhite