Чому розширення часто приховуються в URL-адресах?


20

Я багато разів бачу, що розширення URL-адрес приховано (наприклад .html, .php), але це роблять не всі веб-сайти.

Чому веб-майстри приховують розширення? Це для безпеки, для того, щоб URL-адреса виглядала чистішою чи для інших цілей?


Відповіді:


29

Існує кілька причин для видалення розширень з URL-адрес:

  • Щоб зробити URL-адреси більш чистими
  • Щоб полегшити введення URL-адрес
  • Щоб полегшити запам'ятовування URL-адрес
  • Щоб зробити URL-адреси більш зручними для ключових слів SEO
  • Щоб мати змогу змінювати технології - якщо ви хочете коли-небудь перенести свій веб-сайт з однієї технології на іншу, найпростіше це зробити без того, щоб користувачі навіть не знали, чи немає розширень у URL-адресах.

Майте на увазі , що багато сайтів створюються з допомогою системи управління контентом (CMS) , що б зробити URL - адреси виглядати наступним чином : /index.php?page=this-is-the-widget-page. Це особливо некрасиво і має набагато більше суворості, ніж просто розширення. Переписування для видалення index.php?page=робить це значно краще.

Розширення в Інтернеті не потрібні, оскільки сервери надсилають тип документа у вигляді заголовка. Веб-сторінки подаються як text/html, зображення як image/pngабо image/jpeg. Це дозволяє веб-переглядачам знати, як візуалізувати вміст, не використовуючи розширення, щоб зрозуміти, що URL-адреса містить текст, HTML, PDF або зображення (для отримання додаткової інформації див тип статті Інтернет-медіа у Вікіпедії ).

Деякі веб-майстри вирішили використовувати розширення для своїх URL-адрес, яке відповідає цьому типу вмісту. Отже, будь-який text/htmlдокумент матиме .htmlрозширення, а будь-який image/pngдокумент має .pngрозширення. Це може допомогти, коли URL-адреси зберігаються у файловій системі, де втрачаються метадані про тип їх вмісту. У більшості файлових систем програма, яка відкриває файл, вибирається розширенням. Тож навіть якщо сторінку обслуговує PHP, деякі веб-майстри видаляють .phpрозширення, а деякі замінюють його .html.

Існує також питання щодо того, чи можуть URL-адреси краще закінчуватись у косому сліші ( /), коли у них немає розширення, яке має багато обговорень щодо переповнення стека.


11
У деяких структурах (наприклад, MVC) URL-адреса не ідентифікує файл, тому розширення не можна приховувати.
Генрік Ріпа

6

На всіх веб-серверах є один або кілька "файлів за замовчуванням". Це файл, який відображатиметься кожного разу, коли відвідувач перейде до URL-адреси, яка закінчується косою рисою /, тобто папкою.

Якщо на вашому веб-сервері є ім'я файлу за замовчуванням index.phpі відвідувач переходить до нього www.example.com/pagename/, вони фактично отримують доступ www.example.com/pagename/index.php.

Якщо немає трейлінгу /, веб-сервер, ймовірно, просто переписує URL, щоб видалити його, оскільки це не потрібно. Цей сайт, власне, і робить це.


2
Я не впевнений, що питання було "як", а швидше "чому". Ваша відповідь Патріка абсолютно правильна щодо того, як. Однак Стівен відповів "чому"
Брандт Соловій

4

Це тип «крутої» схеми URI, на який я прагну на своєму особистому веб-сайті.

Особисто причиною того, що я почав це робити (і, мабуть, ще багато веб-дизайнерів / розробників теж!), Було після прочитання статті "Класні URI не змінюються" - цей документ написав батько-засновник Всесвітньої мережі Інтернет Тім Бернерс -Lee.

У відомій статті Тіма Бернерса-Лі він в основному констатує ті самі причини, що і Стівен Остерміллер у своїй чудовій відповіді на це питання .

Щоб дати більш конкретну відповідь на ваше головне запитання "Чому розширення приховані в URL-адресах?" Ну, я б сказав, що основні причини для мене:

1. Для підтвердження майбутнього URI:

Наприклад, це могло здатися гарною ідеєю в той час використовувати URI на зразок: http://www.example.com/page.pl де .plвідбувається екзекція файлу для сценарію Perl. Тим НЕ менше, thesedays, більшість веб - розробники використовують ASP.NET або PHP для серверної-скриптів, тому напередодні , хоча сьогодні , http://www.example.com/page.php звучить як найкраща ідея, в кінці кінців PHP і ASP / ASP.net стануть старомодними. Тому кращою ідеєю є просто видалити розширення взагалі.

2. Читання та пам'ять:

Набагато простіше “крутий” URI передавати людям усно, на папері (наприклад, оголошення, візитні картки тощо), не кажучи вже про просте запам'ятовування.

3. "Hackability" *

Хоча я б сказав, що переважна більшість користувачів у наші дні, ймовірно, проходить пошукову систему для всього - я навіть бачив людей, які зайшли в адресний рядок і вводять www.google.com, а потім використовують Google для буквального введення www.ebay.com! Але я думаю, що якщо у мене є веб-сайт, заснований на мультимедіа, URI http://www.example.com/videoнатякає, що музичний розділ можна знайти під URI http://www.example.com/audioтощо. (Я до сих пір використовую адресний рядок, щоб перейти на веб-сайти - я досить “старий” про таке!)

* (О! "Hackability» - робить це слово навіть існують?! Ну, це робить прямо зараз !) :-)

4. ** Естетика: щоб вони виглядали красивішими! (Звинувачуйте мій OCD!)

Однак я помітив, читаючи на різних веб-сайтах, пов'язаних з SEO, що багато веб-серверів фактично додають розширення файлів до динамічних URI, наприклад:

Фактичним URI може бути: http://www.example.com/article

Однак веб-майстер виконає перезапис, щоб зробити URI "вигляд" статичним, наприклад: http://www.example.com/article.html

Логіка цього полягає в тому, що в основному пошукова система присвоює більш високий рейтинг статичним сторінкам (які, мабуть, рідше змінюються). (Хоча я не зовсім експерт у галузі SEO, я особисто не замислююся над цією ідеєю - я здогадуюсь, що з таким розумом, що стоїть за алгоритмами Google і Бінга, це знадобиться трохи більше, ніж підроблене розширення файлу, щоб con ваш шлях ви перебуваєте в положенні SERP полюс!)

Для отримання додаткової інформації про іменування URI, рекомендую прочитати наступні статті:

Тім Бернерс-Лі:

Поради щодо якості Q3:

Брайан Келлі (UK Web Focus / UKOLN - Університет Бат):

Сподіваюся, це допомагає!


2

Я повністю згоден на всі відповіді, викладені вище. Просто додамо, що одна з причин, чому розширення приховані в URL-адресі, - це безпека. Простіше кажучи, якщо ви не відкриєте розширення в URL-адресі, важко розібратися в технології, на якій створено додаток. Тож скажімо, що сторінка, зроблена в PHP, і розширення не приховано, хакер може потенційно визначити вразливості PHP і використовувати її для виконання деякої шкідливої ​​діяльності.


Я погоджуюся з вашим коментарем, але я вважаю, що використовувати URI для придушення вашої бек-енд-технології як міри безпеки марно. На перший погляд, ви є приховування конкретної використовуваної технології. На жаль, єдиними людьми, яких це "дурить", є кінцеві споживачі; деякі з них (якщо не більшість) не мають поняття, що таке URL, не кажучи вже про ASP / PHP / тощо. У зв'язку з відсутністю кращої фрази, ви начебто "проповідуєте хору".
Джордан Кларк

1

Ви ховаєте розширення сторінки чи ні, люди все ще можуть знати, яку технологію ви використовували. Використовуючи cURL, неможливо отримати вашу технологію, отримавши інформацію заголовка.

curl -I -L rembatvideo.ga

Тоді ви побачите щось на зразок вашої технології, запиту кешу, з'єднання тощо.


0

Цілком погоджуюсь, як пояснює "Стівен Остерміллер", але я хотів би зазначити хитрість, що полягає в тому, щоб приховати розширення URL-адрес. І для цього вам потрібно використовувати правило перезапису .htaccess , ось сценарій, який допоможе вам:

Перенаправлення зовнішніх .phpзапитів на URL без розширення

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.