前端控制器重写htaccess

时间:2019-04-16 07:05:35

标签: php .htaccess front-controller

我正在使用前端控制器来处理网页上有关建筑物的请求。

通过此URL,我可以获取网页上所有建筑物的列表(请注意,建筑物的末尾带有S):

/buildings

使用此URL,我在上面的网页中显示了一个选定的建筑物(请注意建筑物一词的末尾没有任何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]

index.php中的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;
}

提供一些帮助来解决此问题!

0 个答案:

没有答案