如果页面标题是数据库驱动的(或其他动态的),我看不出你怎么能摆脱 .htaccess 重写。在 PHP 脚本中使用路由会更有意义。
我写过一个非常简单的路由方法here。它仅供人们进入该主题,但您应该能够基于此构建一个数据库驱动的路由器。
基本上,通过 index.php 路由所有流量,然后在那里获取请求 URI 并决定要加载哪些资源。
[编辑]
让我详细说明一下,使用我博客文章中的信息。
假设您的网站已设置并运行,首先将流量定向到 index.php。您在 .htaccess 中执行此操作,可以这样完成:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
然后,在 index.php(或从 index.php 调用的脚本)中,您可以获得请求 URI:
$uri = $_SERVER["REQUEST_URI"];
好的,到目前为止一切顺利。现在让我们假设您的数据库包含页面内容以及页面别名。 uri 很可能是页面别名,所以你需要做的就是这样:
$pdo = new PDO(/* your db connection params */);
$page = $pdo
->query("SELECT * FROM pages WHERE alias = :alias",
array("alias" => $uri)
)
->fetch();
此时您应该在 URI 字符串中拥有与标题(或别名)相对应的页面内容。您现在需要做的就是以任何您想要的方式显示它:
echo $page["content"];