【发布时间】:2017-05-18 07:18:20
【问题描述】:
我有一个带有以下 url 的页面:website.com/foo/bar
其中 foo 是页面的 php 文件,bar 是用于从数据库中提取数据的相应 id。
我没有使用任何类型的框架技巧。只需一个 htaccess 即可删除 .php 和扩展名,并处理带有 id 的页面 foo.php,因为它不在子文件夹中。
无论如何,bar 只是一个数字(就像我说的对应于数据库行 id)。对于用户历史记录中的 SEO 和一般可读性,我想使用更流行的 website.com/foo/this-is-the-name 格式(这种格式叫什么??)。
目前我的代码是:
require('neou_cms/framework/framework.php');
$id = filter(basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
// no id
if (empty($id)) {
header('Location: ../portfolio');
}
$projects = Nemesis::select("*", "projects", "published = '1' AND id = {$id}");
$row_projects = $projects->fetch_assoc();
$totalRows_projects = $projects->num_rows;
// no results, bad id
if ($totalRows_projects <= 0) {
header('Location: ../portfolio');
}
如果图我会执行以下操作 (1) 使链接到 foo 的页面改为转到页面标题,例如/this-is-the-name (2) in foo 我会这样做,以便 $id 从名称中删除破折号并使用 select 语句和标题在数据库中搜索该行。
但是我觉得这很慢......有没有更好的方法来做到这一点,而不需要我改变当前的流程?
【问题讨论】:
标签: php mysql url url-rewriting