动态mod_rewrite或如何规划动态网站

时间:2010-03-28 14:20:52

标签: php mod-rewrite dynamic-data blogs web-standards

我正在尝试在动态网站上为博客创建一个干净的网址,但我认为问题在于我不知道如何规划网站架构。

我读到了如何使用mod_rewrite,我发现的是如何将“http://www.website.com/?category&date&post-title”改为“http://www.website.com/category/date/post-title”。这对我来说很有用。

问题是,如果我的网址看起来像“http://www.website.com/blog/?id=34”,那么此方法就无法正常工作。

所以,我有两个问题: 1.有没有办法使用mod_rewrite(可能从txt文件中读取)来读取我博客的帖子标题并按日期和标题后重写我的网址? 2.我是否应该重写我的网站以查询主页中一个索引文件中的数据并使用mod_rewrite来编写好的URL?我应该查询帖子的日期和标题,而不仅仅是帖子ID吗?

3 个答案:

答案 0 :(得分:2)

  1. mod_rewrite用于重写请求,它与网址无关。你必须手动更改网址。
  2. 是的,最常见的做法是从一个索引文件中查询数据 不,你不能用mod_rewrite来写好网址 是的,ID必须与标题一起出现在URL中。你的引擎只会抛出标题而只使用id来检索文章。
  3. 看一下SO url的例子

答案 1 :(得分:1)

您所谈论的通常被称为路由,并且存在许多使用PHP进行此操作的不同方法的示例。最常见的方法是使用前控制器模式,这意味着在简单的情况下,将所有URL重写为单个php文件,然后让该文件根据URL确定要动态显示的内容。

最流行的PHP框架(CakePHP,Symphony,Codeigniter等)都有路由代码,您可以使用它们,也可以作为灵感。或者,如果您想自己动手,本文将介绍许多基础知识:http://www.phpaddiction.com/tags/axial/url-routing-with-php-part-one/

答案 2 :(得分:0)

RewriteMap允许您进行各种动态重写(文本文件,脚本等)。