Почему в Википедии нет расширений? - PullRequest
2 голосов
/ 10 января 2011

Посмотрите на случайную статью в Википедии, например http://en.wikipedia.org/wiki/Impostor_syndrome, Я вижу, что .html не прикреплено к концу адреса. На самом деле, если я делаю и пытаюсь добавить .html после него, Википедия говорит мне: «В Википедии нет статьи с таким точным названием». Почему так не нужны расширения файлов?

Ответы [ 7 ]

4 голосов
/ 10 января 2011

Еще вопрос суперпользователя?

Нет закона, гласящего, что html-файл должен заканчиваться на .html или .htm, и, поскольку вики генерирует страницы из базы данных, на самом деле файловой страницы там нет (за исключением кэша).

Отсутствие .htm или .php более чувствительно - почему вас волнует, какие технологии они используют, когда вы запрашиваете URL? Это все равно, что указывать операционную систему получателя в конце адреса электронной почты.

2 голосов
/ 10 января 2011

если вы звоните на веб-сайт, он, вероятно, выглядит как

www.example.com / SiteA / index.html

этот запрос просто сообщает веб-серверу, что вы хотите увидеть ресурс, который называется index.html, на siteA. веб-сайт, который работает на этом сервере, должен определить, что вы хотите видеть и как загружаются данные. index.html может быть файлом в каталоге siteA или же это может быть строка с ключом "index.html" в таблице siteA в вашей базе данных.

так что часть siteA / index.html - это просто идентификатор ресурса. грамматика этого идентификатора ресурса полностью бесплатна и определяется для каждого сайта.

Перезапись URL также часто используется для облегчения чтения и запоминания URL.

например, может быть правило перезаписи для выполнения следующего:

если пользователь вводит что-то вроде www.example.com/download/demo.zip

переписать его так, чтобы ваш сайт видел это так: www.example.com/download.php?file=demo.zip

2 голосов
/ 10 января 2011

Серверы Википедии отображают URL на нужную вам страницу..html - это просто соглашение об именах, которое сегодня в основном относится к периоду статических страниц, когда URL-адреса фактически были именами файлов на сервере.На самом деле, может вообще не быть файла, где сервер запрашивает базу данных, а веб-фреймворк отправляет HTML на лету.

1 голос
/ 10 января 2011

Это потому, что Википедия использует функцию сокращения URL в MediaWiki.

На самом деле, когда вы ищете файл, он действительно загружает файл php. Попробуйте найти слово, которое не существует, например, «Pazaz». URL-адрес http://en.wikipedia.org/w/index.php?title=Special%3ASearch&search=pazaz. Обратите внимание index.php в URL.

Честно говоря, это не функция MediaWiki, это Apache. Для дальнейшей информации http://www.mediawiki.org/wiki/Manual:Short_URL.

1 голос
/ 10 января 2011

Википедия, скорее всего, использует модуль Apache mod_rewrite, чтобы не связывать пути напрямую с путем к файловой системе.

См .: http://en.wikipedia.org/wiki/Rewrite_engine#Web_frameworks

Однако языки программирования также могут потребоватьуправление входящими URL-адресами и возвращаемыми данными в зависимости от структуры ссылки согласно некоторому набору правил, например, веб-фреймворк Django обслуживает диспетчер URL-адресов .

0 голосов
/ 10 января 2011

URL-маршрутизация - это ваш ответ, например, в ASP, читайте ниже источник от

. ASP.NET MVC Framework включает гибкую систему маршрутизации URL-адресов, которая позволяет вам определять правила отображения URL-адресов в вашемПриложения.Система маршрутизации имеет две основные цели:

  1. Сопоставление входящих URL-адресов с приложением и маршрутизация их так, чтобы выполнялся правильный метод Controller и Action для их обработки
  2. Создание исходящих URL-адресов, которые могут бытьиспользуется для обратного вызова для контроллеров / действий (например: формы сообщений, ссылки и вызовы AJAX)
0 голосов
/ 10 января 2011

Я бы предложил, чтобы сайты, подобные этому, использовали какую-то платформу Model View Controller, похожую на Ruby on Rails , где URL-адреса "каталоги" образуют часть маршрута запрос / URL-адрес ...

В средах, основанных на MVC, URL-адреса "каталоги" могут определять, какой View / Controller использовать, а также какие действия следует предпринимать с данными.

например: shop.com/product/carrots

Где продукт - это представление / контроллер, а морковь - это данные. Затем структура анализирует, какое действие / маршрут предпринять. По умолчанию может быть просмотр информации о продукте и цене моркови.

...