Много раз я вижу, что расширения URL скрыты (например .html
, .php
), но не все сайты делают это.
Почему веб-мастера скрывают расширение? Это для безопасности, чтобы URL выглядел чище или для какой-то другой цели?
Много раз я вижу, что расширения URL скрыты (например .html
, .php
), но не все сайты делают это.
Почему веб-мастера скрывают расширение? Это для безопасности, чтобы URL выглядел чище или для какой-то другой цели?
Ответы:
Есть несколько причин для удаления расширений из URL:
Имейте в виду , что многие сайты создаются с помощью системы управления контентом (CMS) , что бы сделать URL - адреса выглядеть следующим образом : /index.php?page=this-is-the-widget-page
. Это особенно некрасиво и имеет гораздо больше глупостей, чем просто продолжение. Переписывание для удаления index.php?page=
делает это намного лучше.
Расширения не нужны в Интернете, поскольку серверы отправляют тип документа в качестве заголовка. Веб-страницы обслуживаются как text/html
, изображения как image/png
или image/jpeg
. Это позволяет браузерам узнать, как визуализировать контент, не используя расширение, чтобы выяснить, что URL содержит текст, HTML, PDF или изображение (для получения дополнительной информации см. Статью Wikipedia Internet media type ).
Некоторые веб-мастера предпочитают использовать в своих URL-адресах расширение, соответствующее этому типу контента. Таким образом, любой text/html
документ будет иметь .html
расширение, а любой image/png
документ будет иметь .png
расширение. Это может помочь, когда URL-адреса сохраняются в файловой системе, где метаданные об их типе содержимого теряются. В большинстве файловых систем программа, открывающая файл, выбирается по расширению. Таким образом, даже если страница обслуживается PHP, некоторые веб-мастера удаляют .php
расширение, а некоторые заменяют его на .html
.
Существует также вопрос относительно того, могут/
ли URL-адреса лучше заканчиваться в конце косой чертой ( ), если у них нет расширения, которое широко обсуждается по переполнению стека.
Все веб-серверы имеют один или несколько «файлов по умолчанию». Это файл, который будет отображаться всякий раз, когда посетитель переходит на URL, который заканчивается косой чертой /
, то есть в папке.
Если имя файла по умолчанию на вашем веб-сервере index.php
и посетитель идет к нему www.example.com/pagename/
, они фактически получают доступ www.example.com/pagename/index.php
.
Если трейлинг отсутствует /
, веб-сервер, вероятно, просто переписывает URL, чтобы удалить его, поскольку в этом нет необходимости. Этот сайт, по сути, делает это.
Это тип «крутой» схемы URI, к которой я стремлюсь на своем личном веб-сайте.
Лично причина, по которой я начал это делать (и, вероятно, гораздо больше веб-дизайнеров и разработчиков!), Была после прочтения статьи «Классные URI не меняются» - этот документ был написан отцом-основателем Всемирной паутины Тимом Бернерсом. -Ли.
В известной статье Тима Бернерса-Ли он в основном приводит те же причины, что и Стивен Остермиллер в своем превосходном ответе на этот вопрос .
Чтобы дать более конкретный ответ на ваш главный вопрос: «Почему расширения скрыты в 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. «Взлом» *
Хотя я бы сказал, что подавляющее большинство пользователей в наши дни, вероятно, используют поисковую систему для всего - я даже видел людей, которые заходили в адресную строку и печатали www.google.com
, а затем использовали Google для буквального ввода www.ebay.com
! Но я думаю, что если у меня есть веб-сайт, основанный на мультимедиа, URI http://www.example.com/video
намекает на то, что музыкальный раздел можно найти под URI http://www.example.com/audio
, и так далее. (Я все еще использую адресную строку для перехода на веб-сайты - я довольно «старая школа» о подобных вещах!)
* (О! «Взлом» - это слово вообще существует ?! Ну, теперь оно есть !) :-)
4. ** Эстетика: чтобы они выглядели красивее! (Виноват мой ОКР!)
Тем не менее, я заметил, читая различные сайты, связанные с SEO, что многие веб-мастера фактически добавляют расширения файлов к динамическим URI, например:
Фактический URI может быть:
http://www.example.com/article
Однако веб-мастер выполнит переписывание, чтобы URI «выглядел» статично, например:
http://www.example.com/article.html
Логика этого заключается в том, что в основном поисковая система назначает более высокий рейтинг статическим страницам (которые, по-видимому, с меньшей вероятностью изменятся). (Хотя я не совсем эксперт в SEO, лично я не согласен с этой идеей - я догадываюсь, что с учетом того, что стоит за алгоритмами Google и Bing, потребуется чуть больше, чем поддельное расширение файла для Кон, чтобы вы оказались в положении полюса SERP!)
Для получения дополнительной информации об именовании URI, я рекомендую прочитать эти статьи:
Тим Бернерс-Ли:
W3C QA Советы:
Брайан Келли (UK Web Focus / UKOLN - Университет Бата):
Надеюсь это поможет!
Я полностью согласен со всеми ответами, приведенными выше. Просто добавив, что одной из причин, почему расширения скрыты в URL, является безопасность. Проще говоря, если вы не раскрываете расширение в URL-адресе, нетрудно понять технологию, на которой было построено приложение. Допустим, страница сделана на PHP, а расширение не скрыто, и тогда хакер потенциально может определить уязвимости PHP и использовать их для выполнения какой-либо вредоносной деятельности.
Вы скрываете свои расширения страницы или нет, люди все еще могут знать, какую технологию вы использовали. Используя cURL, невозможно получить вашу технологию, получая информацию заголовка.
curl -I -L rembatvideo.ga
Затем вы увидите что-то вроде вашей технологии, запроса кеша, соединения и многого другого.
Полностью согласен, как объяснил «Стивен Остермиллер», но я бы хотел упомянуть хитрость, заключающуюся в том, чтобы скрыть расширение URL. И для этого вы должны использовать правило переписывания .htaccess , вот скрипт, который вам поможет:
Перенаправлять внешние .php
запросы на URL без расширения
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]