Если все CMS (Drupal, MediaWiki) - это просто набор PHP или ASP в фоновом режиме, то как они отображают страницы в www.example.com/directory/ или www.example.com/File_name без расширений или чего-то еще?
Это какая-то конфигурация .HTACCESS? Python? Perl? Что могло это сделать?
Как я могу сделать это для моего сервера / веб-сайтов? (Без использования CMS?)





Посмотрите на директиву DirectoryIndex, чтобы изменить файл по умолчанию, отображаемый для каталога, если вы используете Apache.
CMS, как правило, используют Перезапись URL для получения удобных для пользователя URL-адресов вместо того, чтобы иметь идентификаторы документов в URI.
Вы после URLПерезапись. Это позволяет веб-серверу отображать контент для URL-адресов, которые не сопоставляются напрямую ни с контентом, присутствующим в файловой системе, ни с конкретным обработчиком динамического контента (которые обычно являются двумя стандартными способами обслуживания контента).
Пути без расширения - это то, что вы настраиваете на уровне веб-сервера. В IIS вы можете использовать сопоставление приложений с подстановочными знаками. Обычно все запросы отправляются на указанное вами расширение ISAPI. В Apache вы можете использовать его предложение Роланда.
Большинство приложений этого типа также используют концепцию под названием Перезапись URL, чтобы иметь другой URL-адрес, видимый во внешнем интерфейсе, а не тот, который фактически обрабатывается веб-сервером.
Веб-сервер - это всего лишь небольшая часть программного обеспечения, которое прослушивает входящий запрос и, получив его, отправляет какой-то ответ.
Традиционно серверы (например, Apache / IIS, обслуживающие обычные HTML-файлы) будут смотреть на входящий запрос, находить соответствующий файл в своей локальной файловой системе (например, для /home/about.html, они будут искать в папке дом файл с именем about.html) и отправьте содержимое этого файла обратно клиенту, выполняющему запрос. Это быстро, легко и очень легко реализовать, но это только один из возможных способов создания веб-сервера. Большинство веб-серверов предлагают возможность переопределить это поведение и сделать что-то более умное с входящими запросами.
Что вам нужно сделать, так это настроить сам веб-сервер (IIS, Apache, lighttpd и т. д.) Для направления запросов к определенному сценарию или ресурсу.
В IIS в Windows это можно сделать двумя способами.
Первый - настроить функцию «Пользовательские ошибки» IIS и сопоставить страницу с ошибкой 404, скажем, /MyCms/FindPage.asp - это означает, что каждый раз, когда клиент запрашивает страницу, которая физически отсутствует, ваш веб-сервер будет запускать эту Вместо этого на странице ASP, а затем внутри этой страницы вы можете извлечь исходный URL-адрес запроса (/home/info/events.html), найти его в базе данных или что-то в этом роде и вернуть. Клиент не узнает об этом.
В качестве более мощной альтернативы вы можете использовать сопоставление приложений с подстановочными знаками, как предложено в сообщении олле - это сопоставит КАЖДЫЙ запрос (а не только «не найденные») вашему сценарию или обработчику CMS.
Большинство веб-серверов имеют переписать движки. Они позволяют вам переписывать / перенаправлять определенные запросы внутри или снаружи на другие URL-адреса.
Для Apache есть модуль mod_rewrite или Директива AcceptPathInfo, которые предлагают аналогичную функциональность.
URL-адрес соответствует содержанию, обслуживаемому по определению. Это то, что делают веб-серверы.