Как CMS показывает страницы в каталогах или с простыми именами файлов?

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

Это какая-то конфигурация .HTACCESS? Python? Perl? Что могло это сделать?

Как я могу сделать это для моего сервера / веб-сайтов? (Без использования CMS?)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
204
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

CMS, как правило, используют Перезапись URL для получения удобных для пользователя URL-адресов вместо того, чтобы иметь идентификаторы документов в URI.

Ответ принят как подходящий

Вы после URLПерезапись. Это позволяет веб-серверу отображать контент для URL-адресов, которые не сопоставляются напрямую ни с контентом, присутствующим в файловой системе, ни с конкретным обработчиком динамического контента (которые обычно являются двумя стандартными способами обслуживания контента).

URL-адрес соответствует содержанию, обслуживаемому по определению. Это то, что делают веб-серверы.

Rob Kennedy 11.01.2009 20:06

Пути без расширения - это то, что вы настраиваете на уровне веб-сервера. В 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, которые предлагают аналогичную функциональность.

Другие вопросы по теме