我正在做我的第一个单一入口网站,根据结果,我看不到这个好处。
我已实施以下内容:
示例
文件结构([]中的文件夹):
请求: http://mysite.com/users/profile/
.htaccess将请求重定向到http://mysite.com/index.php
解析URL并且数组包含:[1]用户,[2]个人资料
index.php将[1]映射到“pages / users / index.php”,因此包含该文件
pages / users / index.php maps [2]到pages / users / profile / index.php,所以包含该文件
由于segment数组中没有其他元素,因此包含当前文件夹(pages / users / profile)中的contents.php文件。
我没有真正看到这样做的好处,而不是包含网站组件的功能(例如include_header(),include_footer()等),所以我得出的结论是,我做的事情非常糟糕。我只是不确定它是什么。
答案 0 :(得分:4)
这个版本缺少一些功能,只能作为一种非常简单的前端控制器模式。
大多数系统都没有将URL映射到是页面的单个PHP文件 - 它们将URL路径映射到知道如何构建页面的控制器
此外,并非所有URL都需要映射到直接文件。例如,请查看github.com/[username]/[repo]
。您无法创建数百万个bob/ajaxstuff/index.php
文件 - 您需要使用正则表达式告诉控制器您想要该项目的写入页面。
$app->get('/:username/:repo', function ($username, $repo) {
echo "Looking at $username's $repo";
});
要真正掌握如何正确使用它,我建议您使用功能齐全的路由系统,例如简单的Slim Framework。
如果您想了解有关路由设计和理论的更多信息,我建议您阅读php-router's自述文件和warpspire中的优秀URL Design帖子。
答案 1 :(得分:2)
这是因为当您的内容存储在数据库中而不是像您所拥有的基于文件的系统时,通常会使用此方法。如果您的页面是独立文件,则无需重写。