web-dev-qa-db-fra.com

Nettoyer les URL sans l'extension de fichier PHP

Je souhaite que mes URL soient propres, par exemple:

http://sample.com/about-me au lieu de: http://sample.com/about-me.php

Ceci est mon code:

    RewriteEngine On 
    RewriteBase / 
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^ %{REQUEST_URI}.php

Mais je peux toujours accéder à http://sample.com/about-me.php.

Comment puis-je avoir http://sample.com/about-me, donc http://sample.com/about-me.php sera redirigé en permanence vers cela?

Je pense que cette technique est bonne pour le référencement, car la canonisation n’a besoin que d’une seule URL. Si j'utilise deux URL accessibles à tous les deux, je pense que ce n'est pas bon pour le référencement et peut rendre les moteurs de recherche confus, non?

4
Lena Queen

Les raisons d'utiliser RLs propres sont les suivantes:

  • Ils permettent aux utilisateurs d’identifier plus facilement les résultats des moteurs de recherche et les liens sur les sites Web pour savoir où ils seraient envoyés en cas de clic.

  • Ils font en sorte que les liens dans les moteurs de recherche et les sites Web paraissent plus pertinents par rapport au contenu qui les intéresse, par opposition à un nom de fichier ou à des paramètres de requête. Les utilisateurs seront ainsi plus enclins à cliquer dessus.

  • Ils peuvent aider les moteurs de recherche à comprendre les URL complexes (par exemple, si elles contiennent de nombreux paramètres).

Il est parfaitement correct d’avoir plusieurs URL pointant sur la même ressource, à condition que vous ajoutiez un RL canonique à la page afin de permettre aux moteurs de recherche de connaître l’URL préférée d’indexation. Vous pouvez également demander qu'une des URL soit exclue de l'indexation dans votre fichier robots.txt .

La plupart des utilisateurs pourraient probablement comprendre une URL simple comme celle-ci, et certainement les moteurs de recherche, donc les avantages de la convertir en une URL vierge ne sont probablement pas très importants:

http://sample.com/about-me.php

Toutefois, si vous souhaitez toujours supprimer l'extension PHP de l'URL, vous pouvez essayer de l'utiliser dans votre fichier .htaccess:

RewriteEngine on
RewriteBase / 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
1
dan