Perché le estensioni sono spesso nascoste negli URL?


Risposte:


29

Esistono diversi motivi per rimuovere le estensioni dagli URL:

  • Per rendere gli URL più puliti
  • Per facilitare la digitazione degli URL
  • Per rendere gli URL più facili da ricordare
  • Per rendere gli URL più SEO friendly
  • Per essere in grado di cambiare tecnologia - se mai vuoi spostare il tuo sito da una tecnologia all'altra, è più facile farlo senza che gli utenti sappiano se non ci sono estensioni sugli URL

Tenete a mente che molti siti sono generati da un sistema di gestione dei contenuti (CMS) che renderebbe URL simile a questa: /index.php?page=this-is-the-widget-page. Ciò è particolarmente brutto e ha molto più cruft di una semplice estensione. Riscrivere per rimuovere index.php?page=rende molto meglio.

Le estensioni non sono necessarie sul Web perché i server inviano il tipo di documento come intestazione. Le pagine Web vengono visualizzate come text/html, le immagini come image/pngo image/jpeg. Ciò consente ai browser di sapere come eseguire il rendering del contenuto senza utilizzare un'estensione per capire che l'URL contiene testo, HTML, PDF o immagine (per ulteriori informazioni consultare l'articolo di Wikipedia Tipo di media Internet ).

Alcuni webmaster scelgono di utilizzare un'estensione nei loro URL che corrisponde a questo tipo di contenuto. Quindi qualsiasi text/htmldocumento avrebbe .htmlun'estensione e qualsiasi image/pngdocumento avrebbe .pngun'estensione. Ciò può essere utile quando gli URL vengono salvati nel file system in cui vengono persi i metadati sul loro tipo di contenuto. Nella maggior parte dei file system, il programma che apre il file viene scelto dall'estensione. Quindi, anche se una pagina è servita da PHP, alcuni webmaster rimuovono l' .phpestensione e alcuni la sostituiscono con .html.

C'è anche la domanda se gli URL potrebbero finire meglio con la barra finale ( /) quando non hanno estensione che ha molte discussioni su StackTranslate.it.


11
In alcuni framework (ad es. MVC) l'URL non identifica un file, quindi non c'è estensione da nascondere.
Henrik Ripa,

6

Tutti i server Web hanno uno o più "file predefiniti". È il file che verrà visualizzato ogni volta che un visitatore passa a un URL che termina con una barra /, ovvero una cartella.

Se il nome file predefinito sul server Web è index.phpe un visitatore accede www.example.com/pagename/, accede effettivamentewww.example.com/pagename/index.php .

Se non ci sono tracce /, il web server probabilmente sta semplicemente riscrivendo l'URL per rimuoverlo, poiché non è necessario. Questo sito, infatti, lo fa.


2
Non sono sicuro che la domanda fosse "come", ma piuttosto "perché". Patrik la tua risposta è assolutamente corretta riguardo al come. Stephen, tuttavia, ha risposto al "perché"
Brandt Solovij

4

Questo è il tipo di schema "cool" URI che miro sul mio sito web personale.

Personalmente, il motivo per cui ho iniziato a farlo (e probabilmente anche molti altri web designer / sviluppatori!) È stato dopo aver letto l'articolo "Gli URI fantastici non cambiano" - questo documento è stato scritto dal padre fondatore del World Wide Web, Tim Berners -Lee.

Nel famoso articolo di Tim Berners-Lee, in sostanza afferma le stesse ragioni che Stephen Ostermiller ha nella sua eccellente risposta a questa domanda .

Per dare una risposta più specifica alla tua domanda principale, "Perché le estensioni sono nascoste negli URL?" Bene, direi che i motivi principali per me sono:

1. Per l'URI a prova di futuro:

Ad esempio, al momento potrebbe sembrare una buona idea usare un URI come: http://www.example.com/page.pl dove l' .plessere è il file exetension per uno script Perl. Tuttavia, oggi, la maggior parte degli sviluppatori Web utilizza ASP.NET o PHP per il back-scripting, quindi, anche se oggi , http://www.example.com/page.php sembra un'idea migliore, alla fine PHP e ASP / ASP.net diventeranno vecchio stile. Quindi un'idea migliore è semplicemente rimuovere l'estensione del tutto.

2. Leggibilità e memorabilità:

È molto più facile che un URI "interessante" venga trasmesso verbalmente, su carta (ad es. Pubblicità, biglietti da visita, ecc.), Per non parlare di più facile da ricordare.

3. "Hackability" *

Anche se direi che la stragrande maggioranza degli utenti in questi giorni probabilmente passa attraverso un motore di ricerca per tutto - ho anche visto persone che andavano alla barra degli indirizzi e digitavano www.google.com, e quindi utilizzavano Google per digitare letteralmente www.ebay.com! Tuttavia, penso che se ho un sito Web basato su contenuti multimediali, l'URI http://www.example.com/videosuggerisce che la sezione musicale può essere trovata sotto l'URI http://www.example.com/audioe così via. (Uso ancora la barra degli indirizzi per visitare i siti Web - sono abbastanza "vecchia scuola" per quel genere di cose!)

* (Oh “hackability” - fa quella parola anche non esistere ?! Beh, non ora !) :-)

4. ** Estetica: per renderli più belli! (Colpa del mio disturbo ossessivo compulsivo!)

Tuttavia, ho notato leggendo vari siti Web correlati alla SEO, che molti webmaster in realtà aggiungono estensioni di file a URI dinamici, ad esempio:

L'URI effettivo può essere: http://www.example.com/article

Tuttavia, il webmaster eseguirà una riscrittura per rendere “URI” statico l'URI, come ad esempio: http://www.example.com/article.html

La logica alla base di ciò è che, in sostanza, un motore di ricerca assegnerà un posizionamento più elevato alle pagine statiche (che, a quanto pare, hanno meno probabilità di cambiare). (Anche se non sono esattamente un esperto di SEO, personalmente non mi occupo di questa idea da solo - sto immaginando che con il tipo di menti dietro gli algoritmi di Google e Bing, ci vorrà poco più di un'estensione di file falsi per vieni nella tua pole position SERP!)

Per ulteriori informazioni sulla denominazione degli URI, ti consiglio di leggere questi articoli:

Tim Berners-Lee:

Suggerimenti per il QA del W3C:

Brian Kelly (UK Web Focus / UKOLN - University of Bath):

Spero che sia di aiuto!


2

Sono completamente d'accordo con tutte le risposte sopra riportate. Basta aggiungere che uno dei motivi per cui le estensioni sono nascoste nell'URL è la sicurezza. In parole povere, se non si espone l'estensione nell'URL, è poco difficile capire la tecnologia su cui è stata creata l'applicazione. Quindi diciamo che una pagina è stata creata in PHP e l'estensione non è nascosta, quindi un hacker potrebbe potenzialmente individuare le vulnerabilità di PHP e utilizzarlo per eseguire alcune attività dannose.


Sono d'accordo con il tuo commento, ma penso che usare gli URI per offuscare la tua tecnologia di back-end come misura di sicurezza sia inutile. A prima vista, si sta nascondendo la particolare tecnologia utilizzata. Sfortunatamente, le uniche persone che "inganno" saranno gli utenti finali; alcuni (se non la maggior parte) dei quali non hanno idea di cosa sia un URL, per non parlare di ASP / PHP / ecc. Per mancanza di una frase migliore, sei una specie di "predicazione al coro".
Jordan Clark,

1

Nascondi le estensioni della tua pagina o meno, le persone possono ancora sapere quale tecnologia hai utilizzato. Usando cURL, non è impossibile ottenere la tua tecnologia recuperando le informazioni di intestazione.

curl -I -L rembatvideo.ga

Quindi, vedresti qualcosa come la tua tecnologia, richiesta di cache, connessione e altro.


0

Totalmente d'accordo come spiegato da "Stephen Ostermiller", ma vorrei menzionare il trucco che sta dietro per nascondere l'estensione degli URL. E per questo devi usare la regola di riscrittura .htaccess , ecco lo script che ti aiuta:

Reindirizzare le .phprichieste esterne all'URL senza estensione

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.