web-dev-qa-db-fra.com

Pourquoi les extensions sont-elles souvent cachées dans les URL?

Bien souvent, je vois que les extensions d’URL sont masquées (par exemple .html, .php), mais tous les sites Web ne le font pas.

Pourquoi les webmasters cachent-ils l'extension? Est-ce que c'est pour la sécurité, pour que l'URL ait l'air plus propre, ou pour un autre but?

20
Unknown

Il y a plusieurs raisons de supprimer des extensions d'URL:

  • Pour rendre les URL plus propres
  • Pour faciliter la saisie des URL
  • Pour faciliter la mémorisation des URL
  • Rendre les URL plus conviviales pour les mots clés SEO
  • Pour pouvoir changer de technologie - si vous souhaitez un jour déplacer votre site d’une technologie à l’autre, il est plus simple de le faire sans que les utilisateurs sachent s’il n’ya pas d’extension sur les URL.

N'oubliez pas que de nombreux sites sont générés par un système de gestion de contenu (CMS) qui donnerait aux URL l'apparence suivante: /index.php?page=this-is-the-widget-page. C'est particulièrement moche et a bien plus cruel qu'une simple extension. Réécrire pour supprimer index.php?page= le rend beaucoup mieux.

Les extensions ne sont pas nécessaires sur le Web, car les serveurs envoient le type de document sous forme d'en-tête. Les pages Web sont servies sous la forme text/html, les images sous la forme image/png ou image/jpeg. Cela permet aux navigateurs de savoir comment restituer le contenu sans utiliser d’extension pour déterminer que l’URL contient du texte, HTML, PDF ou une image (pour plus d’informations, consultez l’article de Wikipedia type de média Internet =).

Certains webmasters choisissent d'utiliser une extension correspondant à ce type de contenu dans leurs URL. Ainsi, tout document text/html aura une extension .html et tout document image/png aura une extension .png. Cela peut aider lorsque les URL sont enregistrées dans le système de fichiers où les métadonnées relatives à leur type de contenu sont perdues. Dans la plupart des systèmes de fichiers, le programme qui ouvre le fichier est choisi par l'extension. Ainsi, même si une page est servie par PHP, certains webmasters suppriment l'extension .php, et certains la remplacent par .html.

Il y a également la question de savoir si les URL pourraient mieux se terminer par un slash de fin (/) lorsqu'elles n'ont pas d'extension qui a beaucoup de discussion sur le dépassement de capacité de la pile.

29

Tous les serveurs Web ont un ou plusieurs "fichiers par défaut". C'est le fichier qui sera affiché chaque fois qu'un visiteur accédera à une URL se terminant par une barre oblique /, c'est-à-dire un dossier.

Si le nom de fichier par défaut sur votre serveur Web est index.php et qu'un visiteur accède à www.example.com/pagename/, il est réellement accède à www.example.com/pagename/index.php.

S'il n'y a pas de / final, le serveur Web est probablement en train de réécrire l'URL pour la supprimer, car ce n'est pas nécessaire. Ce site, en fait, fait ça.

6
Patrik Alienus

C’est le type de schéma "cool" d’URI que je vise sur mon site Web personnel.

Personnellement, la raison pour laquelle j'ai commencé à le faire (et probablement beaucoup plus de concepteurs/développeurs web aussi!) Était après avoir lu l'article "Les URI cool ne changent pas" - ce document a été écrit par le Monde Le père fondateur de Wide Web, Tim Berners-Lee.

Dans le célèbre article de Tim Berners-Lee, il énonce essentiellement les mêmes raisons que Stephen Ostermiller a dans son excellente réponse à cette question .

Pour donner une réponse plus précise à votre question principale, "Pourquoi les extensions sont cachées dans les URL?" Eh bien, je dirais que les principales raisons qui me justifient sont les suivantes:

1. Pour pérenniser l'URI:

Par exemple, il aurait semblé utile à l’époque d’utiliser un URI tel que: http://www.example.com/page.pl.pl étant l’extension de fichier d’un script Perl. Cependant, ces jours-ci, la plupart des développeurs Web utilisent ASP.NET ou PHP pour les scripts de backend, donc même si aujourd'hui , http://www.example.com/page.php ressemble à un meilleur idée, éventuellement PHP et ASP/ASP.net deviendront démodés. Donc, une meilleure idée est de simplement supprimer l'extension.

2. Lisibilité et mémorisation:

Il est beaucoup plus facile de passer un URI "cool" aux personnes verbalement, sur papier (par exemple, annonces, cartes de visite, etc.), sans oublier qu'il est plus facile de s'en souvenir.

3. "Capacité de piratage" *

Bien que je dirais que la grande majorité des utilisateurs de nos jours utilisent probablement un moteur de recherche pour tout - j'ai même vu des personnes qui iraient dans la barre d'adresse et taper www.google.com, puis utiliser Google pour taper littéralement dans www.ebay.com! Mais, je pense que si j'ai un site Web basé sur le multimédia, l'URI http://www.example.com/video indique que la section musique se trouve sous l'URI http://www.example.com/audio, etc. (J'utilise toujours la barre d'adresse pour accéder à des sites Web - je suis plutôt "old school" à propos de ce genre de chose!)

* (Oh! “Hackability” - ce mot existe-t-il même?! Eh bien, il existe maintenant !) :-)

4. ** Esthétique: Pour les rendre plus jolies! (Blame mon OCD!)

Cependant, en lisant divers sites Web liés au référencement, j'ai remarqué que de nombreux webmasers ajoutent en fait des extensions de fichier à des URI dynamiques, par exemple:

L'URI réel peut être: http://www.example.com/article

Toutefois, le webmaster procédera à une réécriture pour donner à l'URI une apparence statique, telle que: http://www.example.com/article.html

La logique derrière cela est que, fondamentalement, un moteur de recherche assignera un rang plus élevé aux pages statiques (qui sont apparemment moins susceptibles de changer). (Bien que je ne sois pas vraiment un expert en référencement, personnellement, je n’adhère pas à cette idée. Je pense que, vu le genre d’esprit derrière les algorithmes de Google et de Bing, il faudra un peu plus d’une fausse extension de fichier pour votre chemin vers SERP pole position!)

Pour plus d'informations sur la désignation des adresses URI, je vous recommande de lire ces articles:

Tim Berners-Lee:

Conseils d'assurance qualité du W3C:

Brian Kelly (Royaume-Uni Web Focus/UKOLN - Université de Bath):

J'espère que cela t'aides!

4
Jordan Clark

Je suis complètement d'accord avec toutes les réponses mises ci-dessus. Il suffit d'ajouter que l'une des raisons pour lesquelles les extensions sont masquées dans l'URL est liée à la sécurité. En termes simples, si vous n'exposez pas l'extension dans l'URL, il est facile de déterminer la technologie sur laquelle l'application a été construite. Supposons donc qu'une page est créée dans PHP et que son extension n'est pas masquée. Un pirate informatique pourrait alors potentiellement identifier les vulnérabilités de PHP et l'utiliser pour exécuter une activité malveillante.

2
Vishal Raj

Que vous cachiez ou non vos extensions de page, les utilisateurs peuvent toujours savoir quelle technologie vous avez utilisée. En utilisant cURL, il n'est pas impossible de récupérer votre technologie en récupérant les informations d'en-tête.

curl -I -L rembatvideo.ga

Ensuite, vous verrez quelque chose comme votre technologie, votre demande de cache, votre connexion, etc.

1
Hans Isaa

Totalement d'accord, comme l'explique "Stephen Ostermiller", mais je voudrais mentionner le truc derrière le fait de cacher l'extension des URL. Et pour cela, vous devez utiliser . Htaccess règle de réécriture, voici le script qui vous aide:

Redirige les requêtes _ .php externes vers une URL sans extension

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
0
Rajesh Magar