Warum werden Erweiterungen häufig in URLs ausgeblendet?

20

Viele Male ich sehe , dass URL - Erweiterungen sind versteckt (zB .html, .php), aber nicht alle Websites tun.

Warum verstecken Webmaster die Erweiterung? Ist es aus Sicherheitsgründen, damit die URL sauberer aussieht, oder für einen anderen Zweck?

unbekannte
quelle

Antworten:

29

Es gibt mehrere Gründe, Erweiterungen von URLs zu entfernen:

  • Damit die URLs sauberer aussehen
  • Vereinfacht die Eingabe von URLs
  • Zum leichteren Erinnern von URLs
  • Um URLs SEO Keyword-freundlicher zu machen
  • Um in der Lage zu sein, Technologien zu ändern - wenn Sie Ihre Site jemals von einer Technologie zur anderen verschieben möchten, ist dies am einfachsten, ohne dass die Benutzer wissen, ob die URLs keine Erweiterungen enthalten

Denken Sie daran , dass viele Websites von einem Content - Management - System erzeugt werden (CMS) , die URLs wie folgt aussehen würde: /index.php?page=this-is-the-widget-page. Das ist besonders hässlich und hat weit mehr Cruft als nur eine Erweiterung. Das Umschreiben zum Entfernen index.php?page=macht es viel besser.

Erweiterungen im Web sind nicht erforderlich, da Server den Dokumenttyp als Header senden. Webseiten werden als text/html, Bilder als image/pngoder dargestellt image/jpeg. Auf diese Weise können Browser den Inhalt ohne Verwendung einer Erweiterung rendern, um herauszufinden, dass die URL Text, HTML, PDF oder Bild enthält (weitere Informationen finden Sie im Wikipedia-Artikel Internetmedientyp ).

Einige Webmaster verwenden für ihre URLs eine Erweiterung, die diesem Inhaltstyp entspricht. Jedes text/htmlDokument hätte also eine .htmlErweiterung und jedes image/pngDokument hätte eine .pngErweiterung. Dies kann hilfreich sein, wenn die URLs im Dateisystem gespeichert werden, in dem die Metadaten zu ihrem Inhaltstyp verloren gehen. In den meisten Dateisystemen wird das Programm, mit dem die Datei geöffnet wird, von der Erweiterung ausgewählt. Selbst wenn eine Seite von PHP bereitgestellt wird, entfernen einige Webmaster die .phpErweiterung und andere ersetzen sie durch .html.

Es stellt sich auch die Frage, ob URLs möglicherweise besser mit einem abschließenden Schrägstrich ( /) enden, wenn sie keine Erweiterung haben, worüber Stapelüberlauf viel diskutiert wird.

Stephen Ostermiller
quelle
11
In einigen Frameworks (z. B. MVC) identifiziert die URL keine Datei, sodass es keine auszublendende Erweiterung gibt.
Henrik Ripa
6

Alle Webserver haben eine oder mehrere "Standarddateien". Es ist die Datei, die angezeigt wird, wenn ein Besucher zu einer URL geht, die mit einem Schrägstrich endet /, dh einem Ordner.

Wenn die Standard - Dateinamen auf Ihrem Webserver ist index.phpund ein Besucher geht an www.example.com/pagename/, sie sind tatsächlich Zugriff www.example.com/pagename/index.php.

Wenn kein Trailing vorhanden ist /, schreibt der Webserver wahrscheinlich nur die URL neu, um sie zu entfernen, da dies nicht erforderlich ist. Diese Seite macht das in der Tat.

Athoxx
quelle
2
Ich bin nicht sicher, ob die Frage "wie" war, sondern "warum". Patrik, deine Antwort ist absolut richtig in Bezug auf das Wie. Stephen antwortete jedoch auf das "Warum"
Brandt Solovij
4

Dies ist die Art von „coolem“ URI-Schema, das ich auf meiner eigenen persönlichen Website anstrebe.

Persönlich war der Grund dafür (und wahrscheinlich auch für viele andere Webdesigner / Entwickler!), Dass ich den Artikel „Coole URIs ändern sich nicht“ gelesen habe - dieses Dokument wurde vom Gründervater des World Wide Web, Tim Berners, verfasst -Lee.

In Tim Berners-Lees berühmtem Artikel nennt er im Grunde die gleichen Gründe, die Stephen Ostermiller in seiner ausgezeichneten Antwort auf diese Frage hat .

Um Ihre Hauptfrage zu beantworten: "Warum sind Erweiterungen in URLs versteckt?" Nun, ich würde sagen, dass die Hauptgründe für mich sind:

1. Um die URI zukunftssicher zu machen:

Zum Beispiel hätte es sich damals als eine gute Idee angehört, einen URI zu verwenden, der wie folgt lautet : http://www.example.com/page.pl Dabei handelt .ples sich um die Dateierweiterung für ein Perl-Skript. Allerdings verwenden thesedays, die meisten Web - Entwickler ASP.NET oder PHP für Back - End-Scripting, so Vorabend obwohl heute , http://www.example.com/page.php klingt wie eine bessere Idee, schließlich PHP und ASP / ASP.net wird geworden altmodisch. Eine bessere Idee ist es, die Erweiterung einfach ganz zu entfernen.

2. Lesbarkeit und Erinnerbarkeit:

Es ist viel einfacher, eine „coole“ URI mündlich, auf Papier (z. B. Werbung, Visitenkarten usw.) an Personen weiterzugeben, ganz zu schweigen davon, dass sie leichter zu merken ist.

3. "Hackbarkeit" *

Obwohl ich sagen würde, dass die große Mehrheit der Nutzer heutzutage wahrscheinlich eine Suchmaschine für alles durchläuft - ich habe sogar Leute gesehen, die in die Adressleiste gingen und tippten www.google.comund dann Google verwendeten, um buchstäblich einzutippen www.ebay.com! Wenn ich jedoch eine auf Multimedia basierende Website habe, weist der URI http://www.example.com/videodarauf hin, dass der Musikabschnitt unter dem URI zu finden ist http://www.example.com/audio, und so weiter. (Ich benutze immer noch die Adressleiste, um zu Websites zu gehen - ich bin ziemlich altmodisch in Bezug auf solche Dinge!)

* (! Oh „Wartbarkeit“ - geht das Wort gibt es auch ?! Nun, es ist jetzt !) :-)

4. ** Ästhetik: Um sie schöner aussehen zu lassen! (Beschuldige meine Zwangsstörung!)

Beim Durchlesen verschiedener SEO-bezogener Websites ist mir jedoch aufgefallen, dass viele Webmaster tatsächlich Dateierweiterungen an dynamische URIs anhängen, z.

Die tatsächliche URI kann sein: http://www.example.com/article

Der Webmaster führt jedoch eine Neuschreibung durch, um den URI statisch aussehen zu lassen, z. B .: http://www.example.com/article.html

Die Logik dahinter ist, dass im Grunde genommen eine Suchmaschine statischen Seiten (die sich anscheinend weniger wahrscheinlich ändern) einen höheren Rang zuweisen wird. (Obwohl ich nicht gerade ein Experte für SEO bin, kaufe ich mir diese Idee persönlich nicht ein. Ich gehe davon aus, dass es angesichts der Art der Köpfe, die hinter den Google- und Bing-Algorithmen stecken, etwas mehr als eine falsche Dateierweiterung erfordern wird con your way you in die SERP-Pole Position!)

Weitere Informationen zum Benennen von URIs finden Sie in den folgenden Artikeln:

Tim Berners-Lee:

W3C QA-Tipps:

Brian Kelly (UK Web Focus / UKOLN - Universität Bath):

Hoffe das hilft!

Jordan Clark
quelle
2

Ich stimme allen obigen Antworten voll und ganz zu. Nur hinzufügen, dass einer der Gründe, warum Erweiterungen in URL versteckt sind, die Sicherheit ist. Einfach ausgedrückt, wenn Sie die Erweiterung in der URL nicht offenlegen, ist es nicht schwer, die Technologie herauszufinden, auf der die Anwendung aufgebaut wurde. Nehmen wir also an, eine Seite wurde in PHP erstellt und die Erweiterung ist nicht verborgen. Dann könnte ein Hacker potenziell die Sicherheitslücken von PHP ausfindig machen und damit böswillige Aktivitäten ausführen.

Vishal Raj
quelle
Ich stimme Ihrem Kommentar zu, denke aber, dass die Verwendung von URIs zur Verschleierung Ihrer Back-End-Technologie als Sicherheitsmaßnahme unbrauchbar ist. Auf den ersten Blick Sie sind versteckt die besondere Technologie verwendet. Leider sind die einzigen Leute, die dies "täuschen" wird, die Endbenutzer; Einige (wenn nicht die meisten) haben keine Ahnung, was eine URL ist, geschweige denn ASP / PHP / etc. Mangels eines besseren Ausdrucks „predigen Sie vor dem Chor“
Jordan Clark,
1

Wenn Sie Ihre Seitenerweiterungen verbergen oder nicht, wissen die Leute immer noch, welche Technologie Sie verwendet haben. Mit cURL ist es nicht unmöglich, Ihre Technologie durch Abrufen der Header-Informationen abzurufen.

curl -I -L rembatvideo.ga

Dann würden Sie etwas wie Ihre Technologie, Cache-Anforderung, Verbindung und mehr sehen.

Hans Isaa
quelle
0

Stimme vollkommen zu, wie von "Stephen Ostermiller" erklärt, aber ich möchte den Trick erwähnen, der dahintersteckt, die Erweiterung von URLs zu verbergen. Und dafür müssen Sie die .htaccess- Umschreiberegel verwenden. Hier ist das Skript, das Ihnen hilft:

Leiten Sie externe .phpAnforderungen an eine URL ohne Erweiterung um

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