在URL中传递参数(不与PHP的GET)[复制](Passing parameters in the

2019-09-22 08:13发布

可能重复:
国防部重写和查询字符串

我知道通过在URL参数的唯一方法是使用PHP的GET方法。 但是我看到很多网站使用的是什么似乎是直接参数的URL,就像这样:

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

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

或者,这是一个目录“2”位于目录“页”的正规网址? 这一切意味着,只要创建一个新的职位,该网站创建的所有页面和相应的目录?

谢谢

Answer 1:

这就是所谓的URL重写。 基本上,这意味着你使用Apache模块重写传入的URL到新的网址,然后由阿帕奇处理

在您的例子http://www.test.com/page/2/很可能改写成类似http://www.test.com/?page=2

如果您搜索的Apache URL互联网重写你会得到足够的结果解释你如何能做到这一点。



Answer 2:

这些都是惯例。 GET参数不是专门针对PHP,这是所有浏览器如何编码格式的数据。 基于Java的web应用例如使用分号分隔的参数。

你可以写一个简单的层转换?alpha=1&beta=2/alpha/1/beta/2 ,但IW tould只是一个噱头便宜(除了极少数合法情况下,像在squid缓存)。

你今天的网站做的是使用一个单一入口点模式。 通常与Apache的mod_rewrite ,所有的请求都被处理index.php ,有一个路由设备来选择特定的URL方案的适当处理PHP文件。 这些方案可以通过正则表达式来容易定义。

所以,这一切的一切,你决定你的网址是怎么回事的样子。 这不是一件容易的事,有很多SEO蛇油推销员那里谁会让你做各种疯狂的事情。 有什么好URL实际上是找出你的服务中内容(文档),你必须使用整个服务,单个URL来解决它。

而且不要忘了:冷静的URL不会改变。 您在2年内放弃当前的代码库,并从地上爬起来重建您的网站。 设计在某种程度上是有道理的观点,这也不是依赖于你的web应用设计的逻辑点的URL方案。



Answer 3:

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

你所寻找的是URL重写 。



文章来源: Passing parameters in the URL (not with php GET) [duplicate]