2

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

我阅读了有关如何使用 mod_rewrite 的信息,而我发现的只是如何将“ http://www.website.com/?category&date&post-title ”变为“ http://www.website.com/category/date/post-title ”。这对我来说没问题。

问题是,如果我的 url 看起来像“ http://www.website.com/blog/?id=34 ”,那么这个方法就不会起作用。

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

4

3 回答 3

2
  1. mod_rewrite 用于重写请求,与 url 无关。您必须手动更改网址。
  2. 是的,这是最常见的做法,从一个索引文件中查询数据
    不,您不能使用 mod_rewrite 来编写漂亮的 url
    是的,在 url 中必须存在一个 id 以及标题。您的引擎只会丢弃标题并仅使用 id 来检索文章。

以 SO url 为例

于 2010-03-28T14:24:28.237 回答
1

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

最流行的 PHP 框架(CakePHP、Symphony、Codeigniter 等)都包含路由代码,您可以使用这些代码或作为灵感。或者,如果您想自己动手,这篇文章涵盖了很多基础知识:http ://www.phpaddiction.com/tags/axis/url-routing-with-php-part-one/

于 2010-03-28T14:40:22.590 回答
0

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

于 2010-03-28T14:23:05.310 回答