Wiele razy widzę, że są ukryte rozszerzenia URL (np .html
, .php
), ale nie wszystkie strony internetowe to zrobić.
Dlaczego webmasterzy ukrywają to rozszerzenie? Czy to dla bezpieczeństwa, aby adres URL wyglądał na czystszy, czy w jakimś innym celu?
url
url-rewriting
filenames
clean-urls
Nieznany
źródło
źródło
Odpowiedzi:
Istnieje kilka powodów, aby usunąć rozszerzenia z adresów URL:
Należy pamiętać, że wiele witryn są generowane przez system zarządzania treścią (CMS), która stałaby URL wyglądać tak:
/index.php?page=this-is-the-widget-page
. Jest to szczególnie brzydkie i ma znacznie więcej cruft niż tylko rozszerzenie. Przepisywanie w celu usunięciaindex.php?page=
sprawia, że jest znacznie lepsze.Rozszerzenia nie są potrzebne w Internecie, ponieważ serwery wysyłają typ dokumentu jako nagłówek. Strony internetowe są wyświetlane jako
text/html
obrazy jakoimage/png
lubimage/jpeg
. Dzięki temu przeglądarki wiedzą, jak renderować zawartość bez użycia rozszerzenia, aby dowiedzieć się, że adres URL zawiera tekst, HTML, PDF lub obraz (więcej informacji można znaleźć w artykule Wikipedii rodzaj mediów internetowych ).Niektórzy webmasterzy wybierają rozszerzenie adresów URL pasujące do tego typu treści. Tak więc każdy
text/html
dokument miałby.html
rozszerzenie, a każdyimage/png
dokument miałby.png
rozszerzenie. Może to pomóc, gdy adresy URL są zapisywane w systemie plików, w którym tracone są metadane dotyczące ich typu zawartości. W większości systemów plików program, który otwiera plik, jest wybierany przez rozszerzenie. Więc nawet jeśli strona jest obsługiwana przez PHP, niektórzy webmasterzy usuwają.php
rozszerzenie, a niektórzy go zastępują.html
.Pojawia się również pytanie, czy adresy URL mogą lepiej kończyć się końcowym ukośnikiem (
/
), gdy nie mają rozszerzenia, które ma wiele dyskusji na temat przepełnienia stosu.źródło
Wszystkie serwery mają jeden lub więcej „plików domyślnych”. Jest to plik, który będzie wyświetlany za każdym razem, gdy odwiedzający przejdzie pod adres URL zakończony ukośnikiem
/
, tj. Folder.Jeśli domyślna nazwa pliku na twoim serwerze internetowym to
index.php
i odwiedzający ją odwiedzawww.example.com/pagename/
, to faktycznie uzyskuje dostępwww.example.com/pagename/index.php
.Jeśli nie ma
/
końca, serwer internetowy prawdopodobnie po prostu przepisuje adres URL, aby go usunąć, ponieważ nie jest to konieczne. Ta strona faktycznie to robi.źródło
Jest to rodzaj „fajnego” schematu URI, do którego dążę na mojej własnej stronie internetowej.
Osobiście powodem, dla którego zacząłem to robić (i prawdopodobnie także wielu innych projektantów / programistów!) Było po przeczytaniu artykułu „Fajne identyfikatory URI się nie zmieniają” - ten dokument został napisany przez założyciela World Wide Web, Tima Bernersa -Zawietrzny.
W słynnym artykule Tima Bernersa-Lee w zasadzie podaje te same powody, dla których Stephen Ostermiller ma doskonałą odpowiedź na to pytanie .
Aby udzielić bardziej szczegółowej odpowiedzi na twoje główne pytanie: „Dlaczego rozszerzenia są ukryte w adresach URL?” Cóż, powiedziałbym, że głównymi powodami są:
1. Aby zabezpieczyć identyfikator URI w przyszłości:
Na przykład, może wydawać się wtedy dobrym pomysłem użycie identyfikatora URI typu:
http://www.example.com/page.pl
gdzie.pl
jest rozszerzenie pliku dla skryptu Perl. Jednak thesedays większość developerzy użyciu ASP.NET czy PHP na backend-skryptów, więc Ewa chociaż dzisiaj ,http://www.example.com/page.php
brzmi jak lepszy pomysł, w końcu PHP i ASP / ASP.net będzie staromodny. Lepszym pomysłem jest więc całkowite usunięcie rozszerzenia.2. Czytelność i zapamiętywanie:
Znacznie łatwiej jest przekazać „fajny” identyfikator URI ludziom w formie ustnej, na papierze (np. Reklamy, wizytówki itp.), Nie wspominając o łatwiejszym do zapamiętania.
3. „Hackability” *
Chociaż powiedziałbym, że ogromna większość użytkowników w dzisiejszych czasach prawdopodobnie przegląda wszystko - widziałem nawet ludzi, którzy przechodzili do paska adresu i pisali
www.google.com
, a następnie używali Google do literalnego wpisywaniawww.ebay.com
! Myślę jednak, że jeśli mam witrynę internetową opartą na multimediach, identyfikator URIhttp://www.example.com/video
wskazuje, że sekcja muzyki znajduje się pod identyfikatorem URIhttp://www.example.com/audio
i tak dalej. (Nadal używam paska adresu, aby przechodzić do stron internetowych - jestem dość „oldschoolowy” w tego typu sprawach!)* (! Oh „Hackability” - czy to słowo jeszcze istnieją ?! Cóż, nie teraz !) :-)
4. ** Estetyka: aby wyglądały ładniej! (Obwiniaj mój OCD!)
Zauważyłem jednak, czytając różne strony związane z SEO, że wiele webmaserów faktycznie dołącza rozszerzenia plików do dynamicznych URI, np .:
Rzeczywisty identyfikator URI może być:
http://www.example.com/article
Jednak webmaster wykona przepisanie, aby URI „wyglądał” statycznie, na przykład:
http://www.example.com/article.html
Logika tego polega na tym, że wyszukiwarka przypisuje wyższą pozycję stronom statycznym (które, jak się wydaje, rzadziej się zmieniają). (Chociaż nie jestem ekspertem od SEO, ja osobiście nie kupuję tego pomysłu - zgaduję, że mając do czynienia z algorytmami Google i Bing, zajmie to nieco więcej niż fałszywe rozszerzenie pliku oszukiwać na swojej pozycji do pole position SERP!)
Aby uzyskać więcej informacji na temat nazywania identyfikatorów URI, polecam przeczytanie następujących artykułów:
Tim Berners-Lee:
Wskazówki dotyczące kontroli jakości W3C:
Brian Kelly (UK Web Focus / UKOLN - University of Bath):
Mam nadzieję że to pomoże!
źródło
Całkowicie zgadzam się na wszystkie powyższe odpowiedzi. Wystarczy dodać, że jednym z powodów, dla których rozszerzenia są ukryte w adresie URL, jest bezpieczeństwo. Mówiąc prościej, jeśli nie ujawnisz rozszerzenia w adresie URL, nietrudno jest dowiedzieć się, na jakiej technologii została zbudowana aplikacja. Załóżmy więc, że strona jest wykonana w PHP, a rozszerzenie nie jest ukryte, wtedy haker może potencjalnie wykryć luki w zabezpieczeniach PHP i wykorzystać je do wykonania złośliwych działań.
źródło
Ukrywasz rozszerzenia stron, czy nie, ludzie nadal mogą wiedzieć, jakiej technologii użyłeś. Używając cURL, nie jest niemożliwe uzyskanie technologii przez pobranie informacji nagłówka.
Następnie zobaczysz coś takiego jak Twoja technologia, żądanie pamięci podręcznej, połączenie i inne.
źródło
Zgadzam się całkowicie, jak wyjaśniono w „Stephen Ostermiller”, ale chciałbym wspomnieć o sztuczce kryjącej za sobą rozszerzenie adresów URL. Aby to zrobić, musisz użyć reguły przepisywania .htaccess , oto skrypt, który ci pomoże:
Przekieruj zewnętrzne
.php
żądania na adres URL bez rozszerzeniaźródło