Создание виртуальной страницы сайта

DarkHorse
На сайте с 29.12.2013
Offline
45
788

Коллеги, добрый день!

Пожалуйста, подскажите. Как можно создать страницу сайта вида http://sample.ru/page.html без физического создания данной страницы.

Например, плагин Google Xml Sitemap для WP создает виртуальную карту сайта по адресу http://sample.ru/sitemap.xml без физического создания файла. То есть физически файл sitemap.xml на сайте отсутствует, но страница открывается и отдает ответ OK 200.

Каким образом это можно повторить?

Вперед в бой, а битва все решит!
Anamnado
На сайте с 08.02.2010
Offline
242
#1

ну как варианты

1) использовать CGI

урл вызывает определенный код. который генерит страницу. (если кратко)

- сложно и геморно.

2) использовать mod_rewrite и заворачивать все урл на файл index.php (ну а там в нём вы можете обрабатывать урл как захотите, и генерить на экран чего захотите)

- гораздо проще (вернее совсем просто, хотя не буду спешить так утверждать, так как всё дело может упереться в используемую CMS и её алгоритмы работы)

больше чет пока на ум ничего не идёт.

- но вы уверены что вопрос именно в файле ? . ведь данные можно хранить в базе данных. и виртуальной страницей это назвать ну никак нельзя.

danforth
На сайте с 18.12.2015
Offline
153
#2

Как как?!

На PHP:

  • Делаем единую точку входа в файл index.php (или любой другой)
  • Делаем роутер, прописываем что-то вроде

  • Route::get("/example.html", function() {
    include "another-page.html";
    // Или один из вариантов ниже
    // echo "Несуществующий текст";
    // return "hi";
    });
  • Делаем контроллер, либо если все просто - инклюдим нужную вам хрень как я сделал выше

Все зависит от стека технологий, который вы сейчас используете. Если это WP, то ответ будет один. Если это Zend/Symfony/Laravel - другой. Если это Go, Python - третий.

Junior Web Developer
M
На сайте с 04.12.2013
Offline
223
#3

DarkHorse, сделайте единую точку входа с роутером. Основное содержимое хранят обычно в базе, а в файлах – только шаблон. Вот типичный пример с одного из наших тестовых сайтов: Иллюзия присутствия. Основу того, как это делается, я заложил в статье Как сделать единую точку входа с ЧПУ?

---------- Добавлено 27.11.2016 в 18:40 ----------

DarkHorse:

Например, плагин Google Xml Sitemap для WP создает виртуальную карту сайта по адресу http://sample.ru/sitemap.xml без физического создания файла. То есть физически файл sitemap.xml на сайте отсутствует, но страница открывается и отдает ответ OK 200.
Тут лучше все же использовать кэширование, генерируя файл с опред. периодичностью. Иначе, если целенаправленно бить в одну точку (обращаться к карте), можно приличную нагрузку создать.
Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
S
На сайте с 30.09.2016
Offline
469
#4
DarkHorse:
Как можно создать страницу сайта вида http://sample.ru/page.html без физического создания данной страницы.

Например, плагин Google Xml Sitemap для WP создает виртуальную карту сайта по адресу http://sample.ru/sitemap.xml без физического создания файла.

Скажу по секрету: WP вообще создает страницы без физического создания файла. Как и другие CMS. Хотя на самом деле, какие-то файлы всё равно где-то существуют, просто выдача на страницу производится путём генерирования скриптом контента в том виде, который нужен.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
DarkHorse
На сайте с 29.12.2013
Offline
45
#5

Ребята, всем Огромное Спасибо!

Использовал решение, предоставленное miketomlin. :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий