Pourquoi les extensions sont-elles souvent masquées sur les URL?


Réponses:


29

Il existe plusieurs raisons de supprimer des extensions des URL:

  • Pour rendre les URL plus propres
  • Pour faciliter la saisie des URL
  • Pour rendre les URL plus faciles à mémoriser
  • Pour rendre les URL plus conviviales pour les mots clés SEO
  • Pour pouvoir changer de technologie - si jamais vous souhaitez déplacer votre site d'une technologie à l'autre, il est plus facile de le faire sans que les utilisateurs ne sachent même s'il n'y a pas d'extensions sur les URL

Gardez à l' esprit que de nombreux sites sont générés par un système de gestion de contenu (CMS) qui compliqueraient les URL ressemblent à ceci: /index.php?page=this-is-the-widget-page. C'est particulièrement moche et a bien plus de malice qu'une simple extension. Réécrire pour le supprimer le index.php?page=rend beaucoup mieux.

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

Certains webmasters choisissent d'utiliser une extension sur leurs URL qui correspond à ce type de contenu. Donc, tout text/htmldocument aurait une .htmlextension et tout image/pngdocument aurait une .pngextension. Cela peut être utile lorsque les URL sont enregistrées dans le système de fichiers où les métadonnées sur 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' .phpextension, et certains la remplacent par .html.

Il y a aussi la question de savoir si les URL pourraient mieux se terminer par une barre oblique de fin ( /) quand elles n'ont pas d'extension, ce qui a beaucoup de discussions sur Stack Overflow.


11
Dans certains frameworks (par exemple MVC), l'URL n'identifie pas un fichier, il n'y a donc pas d'extension à cacher.
Henrik Ripa

6

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ède à une URL qui se termine par une barre oblique /, c'est-à-dire un dossier.

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

S'il n'y a pas de fin /, 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 cela.


2
Je ne suis pas sûr que la question était "comment" mais plutôt "pourquoi". Patrik, votre réponse est tout à fait correcte concernant le comment. Stephen a cependant répondu au "pourquoi"
Brandt Solovij

4

C'est le type de schéma d'URI «cool» que je vise sur mon propre 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 père fondateur du World 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 spécifique à votre question principale, «Pourquoi les extensions sont-elles cachées dans les URL?» Eh bien, je dirais que les principales raisons pour moi sont:

1. Pour pérenniser l'URI:

Par exemple, il aurait pu sembler une bonne idée à l'époque d'utiliser un URI comme: http://www.example.com/page.pl.plêtre l'exetension du fichier pour un script Perl. Cependant, ces jours-ci, la plupart des développeurs Web utilisent ASP.NET ou PHP pour les scripts de backend, donc la veille , aujourd'hui , http://www.example.com/page.php semble être une meilleure idée, éventuellement PHP et ASP / ASP.net deviendront à l'ancienne. Donc, une meilleure idée est de supprimer complètement l'extension.

2. Lisibilité et mémorisation:

Il est beaucoup plus facile de transmettre un URI «cool» aux gens verbalement, sur papier (par exemple des publicités, des cartes de visite, etc.), pour ne pas mentionner plus facile à retenir.

3. «Hackability» *

Bien que je dirais que la grande majorité des utilisateurs de nos jours passent probablement par un moteur de recherche pour tout - j'ai même vu des gens qui allaient dans la barre d'adresse et tapaient www.google.com, puis utilisaient Google pour taper littéralement www.ebay.com! Mais, je pense que si j'ai un site Web basé sur le multimédia, l'URI http://www.example.com/videolaisse entendre que la section musique peut être trouvée sous l'URI http://www.example.com/audio, et ainsi de suite. (J'utilise toujours la barre d'adresse pour aller sur des sites Web - je suis assez "old-school" à propos de ce genre de chose!)

* (Oh! « Hackabilité » - signifie ce mot existe encore ?! Eh bien, il ne maintenant !) :-)

4. ** Esthétique: pour les rendre plus jolis! (Blâmez mon TOC!)

Cependant, j'ai remarqué en parcourant divers sites Web liés au référencement, que de nombreux webmasters ajoutent en fait une extension de fichier aux URI dynamiques, par exemple:

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

Cependant, le webmaster effectuera une réécriture pour donner à l'URI un aspect statique, tel que: http://www.example.com/article.html

La logique derrière cela est que, fondamentalement, un moteur de recherche attribuera un rang plus élevé aux pages statiques (qui sont, apparemment, moins susceptibles de changer). (Bien que je ne sois pas exactement un expert en SEO, personnellement, je ne souscris pas à cette idée moi-même - je pense qu'avec le genre d'esprit derrière Google et les algorithmes de Bing, il faudra un peu plus qu'une fausse extension de fichier pour vous frayez un chemin en pole position SERP!)

Pour plus d'informations sur l'attribution d'un nom aux URI, je vous recommande de lire ces articles:

Tim Berners-Lee:

Conseils Q3 W3C:

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

J'espère que cela t'aides!


2

Je suis entièrement d'accord avec toutes les réponses ci-dessus. Il suffit d'ajouter que l'une des raisons pour lesquelles les extensions sont masquées dans l'URL est la sécurité. En termes simples, si vous n'exposez pas l'extension dans l'URL, il est peu difficile de comprendre la technologie sur laquelle l'application a été construite. Disons donc qu'une page est faite en PHP et que l'extension n'est pas cachée, alors un pirate pourrait potentiellement comprendre les vulnérabilités de PHP et l'utiliser pour exécuter une activité malveillante.


Je suis d'accord avec votre commentaire, mais je pense que l'utilisation d'URI pour obscurcir votre technologie dorsale comme mesure de sécurité est inutile. À première vue, vous êtes caché la technologie particulière utilisée. Malheureusement, les seules personnes que cela va «tromper» sont les utilisateurs finaux; dont certains (sinon la plupart) n'ont aucune idée de ce qu'est une URL, et encore moins ASP / PHP / etc. Faute d'une meilleure phrase, vous êtes en quelque sorte «en train de prêcher au chœur».
Jordan Clark

1

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

curl -I -L rembatvideo.ga

Ensuite, vous verriez quelque chose comme votre technologie, demande de cache, connexion et plus encore.


0

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

Rediriger les .phpdemandes externes vers une URL sans extension

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.