Вопрос

Меня попросили выяснить, как система бетен5 работает для работодателя, и я не могу что-то понять.

У меня есть бетен5, установленный в каталог на сервере называется /realprofessionals. Отказ Когда система бетона5 делает новые страницы, это дает им свои собственные абсолютные пути, например:

http://www.wmcpartners.com/realProfessions/footer.

Тем не менее, он на самом деле не сделал папку в /realprofessionals каталог называется footer. Отказ Так как это работает? Как может http://www.wmcpartners.com/realProfessions/footer. Будь рабочей ссылкой?

Это было полезно?

Решение

Краткий ответ: Все запросы страниц фактически проходят через один и только файл index.php. Содержимое страницы хранится в базе данных, а не в файлах на сервере.

Долгий ответ:Бетон5 (и большинство CMS на основе PHP на основе PHP в этом отношении) работают следующим образом: все запросы направляются через файл index.php. Эта маршрутизация применяется некоторыми правилами MOD_REWRITE в файле .htaccess. Правила говорят: «Для любого запроса, на самом деле не переходите на эту страницу, но вместо этого переходите к index.php и пройти остальную часть запрошенного пути в виде параметров $ _get». Затем в коде index.php (или какой-то другой код, который включен в файл index.php), запрашиваемая страница определяется на основе пути, который был помещен в параметры $ _get по Apache (согласно правилу MOD_REWRITE. HTACCESS), и соответствующий контент извлекается из базы данных.

Хранение содержимого в базе данных, в отличие от файлов на сервере, имеет несколько преимуществ. Например, вы можете повторно использовать тот же HTML-шаблон - заголовок, нижний колонтитул, боковую панель - на каждой странице, и если вы измените шаблон, он автоматически будет отражен на всех страницах, на которых он используется. Кроме того, это облегчает перемешивание страниц и дать им все, что вы хотите URL (например, без расширения «.php» в конце, или / 2010/11 / Дата / на основе / Пути / для / блог / посты).

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

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

Ответ Иордании отлично, я бы добавил, что вы, вероятно, не видите index.php в URL, потому что вы включили Красивые URL-адреса (введите «красиво» на поисковой почте бетен5, чтобы проверить это).

Во всяком случае, лучший способ программно добавить ссылку на внутренние страницы:

<a href="<?=$this->url('page-name');?>"> 
    page name 
</a>

Работает как на Localhost, так и в Интернете, с красивыми URL-адресами или без них.

(Для имени страницы перейдите на приборную панель / полный сайт Sitemap / Page-Name / Properties / Page Paths и местоположение.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top