【问题标题】:Clean Wordpress-Like URLs with PHP and Apache使用 PHP 和 Apache 清理类似 Wordpress 的 URL
【发布时间】:2011-10-02 15:53:29
【问题描述】:

我想知道如何使用 php 和 apache 制作干净的 url。就像 wordpress 一样。

例如,在 wordpress 中只有一个文件 index.php,它处理所有的 url。我想知道它是怎么做到的?

喜欢:

example.com/abouthttp://www.example.com/about/ 为 index.php 提供一些信息以生成页面。

网络上有很多其他资源可以生成 .htaccess,但只有特定的文件,例如:

example.com/products/cat1/10 转到 example.com/products.php?c=cat1&id=10

我不希望这样...我希望所有页面请求在向 php 提供某种信息然后 php 生成页面时结束...

.htaccess 代码是什么以及 php 将如何处理请求。

【问题讨论】:

    标签: php apache wordpress url seo


    【解决方案1】:

    哇!这是一个臃肿的问题。有很多方法可以做你想做的事。基本上你应该遵循一个简单的模式:

    1. 您将query string 传递给index.php(只有这个文件会处理所有查询,所以我建议您在这种情况下关注MVC pattern
    2. 在你的index.php 中分析query string(调度),所以你知道你应该做什么(你的查询字符串的一部分应该以某种方式指向那个控制器和正在调用的动作)。
    3. 您将(解析的)查询参数传递给某个函数(在 MVC 中为 action),该函数可以是类的方法(当类为 controller 包含方法操作时,这是非常常见的方法)

    您应该编写自己的 Url-Mapper,以便它可以知道需要哪个控制器以及应该根据查询字符串执行哪个操作。

    顺便说一句,如果你真的喜欢 WP 的 URL 管理,为什么不深入研究它的代码呢?

    【讨论】:

      【解决方案2】:

      只需使用 php 重绘页面,然后使用 apache 重绘你的 url

      【讨论】:

      • 我不会投反对票,但我根本看不出你的回答有什么帮助。 “使用 php 重绘页面”可以有多种解释。
      • "Redraw the page using php"不能有很多解释,它只是代表php所做的主要事情:重绘页面。
      • 呃什么? PHP 不会“重绘”任何东西。你到底是怎么“画”东西的?您是指使用 PHP 模板化或包含页面吗?
      【解决方案3】:

      听起来您想使用前端控制器模式。您可以从中找到很多方向,但如果您快速发送Google search,您会发现很多地方可以开始。

      【讨论】:

        猜你喜欢
        • 2012-01-17
        • 2014-06-22
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-10
        相关资源
        最近更新 更多