Передний контроллер переписать в htaccess - PullRequest
0 голосов
/ 16 апреля 2019

Я использую фронт-контроллер для обработки запросов на веб-странице о зданиях.

С помощью этого URL я получаю список всех зданий на веб-странице (обратите внимание, что слово здания с S в конце):

/buildings

И с этим URL я показываю одно выбранное здание на веб-странице выше (обратите внимание на слово building без всякого S в конце):

/building/building-name

У меня вопрос, возможно ли также использовать URL-адрес, подобный этому, для одного выбранного здания:

/buildings/building-name

Я хотел бы использовать /buildings/ для страницы, чтобы перечислить все здания и /buildings/building-name для страницы, чтобы показать выбранное здание. Если это возможно, мне интересно, как я справляюсь с этим в файле htaccess и во фронт-контроллере PHP? Если я использую buildings дважды в качестве опции в случае коммутатора, это не сработает?!

Часть файла htaccess:

# Buildings (List all buildings)
RewriteRule ^buildings$ /?p=buildings [L,QSA]

#Building + id (Show a single selected building)
RewriteRule ^building/(.+)$ /?p=building&id=$1 [L,QSA]

PHP-код в index.php:

// pagecontrol
$page = isset($_GET["p"]) ? $_GET["p"] : "start";

switch($page) 
{
case 'start':                       require_once('start.php'); break;
case 'buildings':                   require_once('buildings.php'); break;
case 'building':                    require_once('building.php'); break;
default:                            require_once('start.php'); break;
}

Точная помощь в решении этой проблемы!

...