2

可能重复:
mod 重写和查询字符串

我知道在 URL 中传递参数的唯一方法是使用 PHP 中的 GET 方法。但我看到许多网站直接在 URL 中使用似乎是参数的内容,如下所示:

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

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

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

谢谢

4

3 回答 3

1

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

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

如果您在 Internet 上搜索 Apache URL rewrite,您将获得足够的结果来说明如何执行此操作。

于 2012-09-12T13:30:29.450 回答
1

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

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

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

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

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

于 2012-09-12T13:50:00.440 回答
0

您给出的示例仍然是 GET 请求。

您正在寻找的是URL 重写

于 2012-09-12T13:31:28.863 回答