【问题标题】:Passing parameters in the URL (not with php GET) [duplicate]在 URL 中传递参数(不使用 php GET)[重复]
【发布时间】:2012-09-05 12:52:37
【问题描述】:

可能重复:
mod rewrite and query strings

我知道在 URL 中传递参数的唯一方法是使用 PHP 中的 GET 方法。但我看到很多网站直接在 URL 中使用似乎是参数的东西,像这样:

http://.../page/2/

在这种情况下,“页面”真的是一个参数吗?如果有,在代码中是如何处理的?

或者这是位于目录“页面”中的目录“2”的常规 URL?是不是意味着每当创建新帖子时,网站都会创建所有页面和相应的目录?

谢谢

【问题讨论】:

  • 它也 GET 参数,但它们只是使用 URL Rewrite 技术......你可以谷歌那个
  • 它被称为“漂亮的 URL”,并且有足够的讨论可用。
  • 这仍然使用$_GET来访问参数。可能您需要阅读更多关于 mod_rewrite 以及如何在 php 中处理重写。

标签: php html url parameters


【解决方案1】:

这称为 url 重写。基本上这意味着您使用 apache 模块将传入的 url 重写为新的 url,然后由 apache 处理

在您的示例中,http://www.test.com/page/2/ 可能被重写为 http://www.test.com/?page=2 之类的东西。

如果你在互联网上搜索 Apache URL rewrite,你会得到足够的结果来解释你如何做到这一点。

【讨论】:

  • 感谢您的准确回答,我会调查的!
【解决方案2】:

这些都是约定。 GET 参数并非特定于 PHP,这是所有浏览器对表单数据进行编码的方式。例如,基于 Java 的 Web 应用使用分号分隔的参数。

您可以编写一个简单的层来将?alpha=1&beta=2 转换为/alpha/1/beta/2,但这只是一个廉价的噱头(除了在极少数合法情况下,例如使用 Squid 缓存)。

今天的网站所做的是使用单一入口点模式。通常使用 apache 的 mod_rewrite,所有请求都由 index.php 处理,并且有一个 routing 工具可以为特定的 URL 方案选择适当的处理程序 PHP 文件。这些方案可以通过正则表达式轻松定义。

因此,总而言之,您可以决定 URL 的外观。这不是一件容易的事,有很多 SEO 蛇油推销员会让你做各种疯狂的事情。一个好的 URL 的作用是识别服务中的内容(文档),并且您必须在整个服务中使用该单个 URL 来处理它。

别忘了:酷炫的 URL 不会改变。您在 2 年内放弃当前的代码库并从头开始重建您的网站。以一种从逻辑角度来看有意义的方式设计您的 URL 方案,而不是依赖于您的 Web 应用程序设计。

【讨论】:

    【解决方案3】:

    你给出的例子仍然是一个 GET 请求。

    你要找的是URL rewriting

    【讨论】:

      猜你喜欢
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      相关资源
      最近更新 更多