【问题标题】:How to manage URLs in PHP如何在 PHP 中管理 URL
【发布时间】:2013-05-09 21:14:46
【问题描述】:

我有这样的网址:

example.com/category?id=5,

但我希望这个网址看起来像

example.com/category/category_name.

我使用没有任何框架的纯 php。 你能建议我有什么办法吗..?

【问题讨论】:

  • 基本上,您需要将您的网址更改为这样。没有任何灵丹妙药可以知道 category_id = 5 与例如玩具相同,而无需您编写代码来执行此操作,尤其是在您没有使用任何框架的情况下

标签: php url frameworks


【解决方案1】:

这是你应该尝试用你的网络服务器解决的问题,这不是一个真正的 PHP 问题。对于 Apache,该机制称为 modRewrite。

http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html 应该是一个简单的入门。

【讨论】:

  • 奇怪的是,在我看来 PHP 用户是唯一一个大多数人依靠 mod_rewrite 来解决这个问题的群体。我看过的其他所有内容都依赖于它的语言。我特别喜欢 Catalyst actions 来解决这个问题。
  • @Quentin 他特别说他之前有一个不使用框架的现有代码库。所以他得到了不需要添加框架层的解决方案;)
  • 你不需要框架层来解析$_SERVER['REQUEST_URI']
【解决方案2】:

如果在 Apache 下,使用一些 .htacces 机制。

无论如何,您的美化网址应该包含一些可靠的数据作为类别 id,而不仅仅是类别(sluggified)名称。

假设你想要一个像这样的网址:

example.com/category/category_name/id

在您的 .htaccess 中,您将使用如下规则:

RewriteRule   ^example.com/category/([a-z0-9\-]+)/(\d+)$ /example.com/category?id=$1 [L,R=301]

查看您的网络服务器文档以获取详细说明

【讨论】:

    【解决方案3】:

    考虑使用 mod rewrite 作为 apache 的一部分。您将在 Web 服务器的根目录中有一个 .htaccess 文件(如果没有创建 1 然后添加您需要的规则) http://httpd.apache.org/docs/current/mod/mod_rewrite.html

    有一个网站,您可以从您网站上的页面提供一个 url,它会为您创建 mod 重写代码

    http://www.generateit.net/mod-rewrite/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 2012-04-04
      相关资源
      最近更新 更多