我用PHP创建了一个带有前端控制器的站点,但是URL和永久链接存在一些问题。当我调用页面以显示建筑物列表时(我使用byggnader
这个瑞典语单词buildings
),却没有这样的干净的永久链接:
/byggnader/
尽管在.htaccess文件中进行了设置,但我还是得到了这样的永久链接:
/byggnader/?p=byggnader
当我选择建筑物时,将创建一个新页面,然后获得如下所示的正确永久链接:
/byggnader/name
但是为什么在第一步中不能使用它呢?
/byggnader/
我不希望它可见:
?p=byggnader
那应该是不可见的!只是:
/byggnader/
这是我的.htaccess文件的一部分:
# List of all buildings
RewriteRule ^byggnader$ /?p=byggnader [L,QSA]
# The selected building to open a new page
RewriteRule ^byggnader/(.+)$ /?p=byggnad&id=$1 [L,QSA]
这是我的前端控制器的一部分:
$page = isset($_GET["p"]) ? $_GET["p"] : "start";
switch($page) {
case 'byggnader': require_once('buildings.php'); break; // All buildings
case 'byggnad': require_once('building.php'); break; // One building
}
当我在localhost上开发站点时,一切正常,但是当我将代码上传到主机时,出现了此问题。帮助非常重要!