需要有关使用example.php /例如一些答案(Need some answer about e

2019-10-17 11:36发布

我做的一个项目,我在这同时,通过一些代码,会偶然发现。 我曾试图谷歌,但找不到正确的关键字,关于这个问题进行搜索。

http://www.fruit.com/example.php/red

我与这个和结束混淆.php它仍然有一个字符/red的例子。 这样做的目的是什么? 它有事情做与POST方法?

Answer 1:

一种可能的解释是,开发人员正在使用.htaccess重写规则。 它是有做的页面(如你所说,POST和GET)最有可能的额外的数据,它的唯一这样做的方式,使URL看起来更漂亮或简化URL。

它有时也做了这样的方式更容易linkback到这个页面,特别是基于数据正在生成的页面。

一个受欢迎的地方做这将是博客。 你经常看博客显示链接为:

http://blog.com/blog/2001/02/23/how-pretty-is-this

而实际上,请求到服务器是一样的东西:

/blog.php?year=2001&month=02&day=23&title=how-pretty-is-this

这是不是漂亮,不是很容易链接返回到这个特定页面。



Answer 2:

Mr.Xenotype回答你的问题很好,但错过了一个小部分。

Does it have something to do with POST method?

不,这与GET方法处理。 正如他所说,这几乎使URL看起来“漂亮”,它实际上可能是一个RESTful API的一个重要组成部分(位高级初学者),如果是这样的网站是如何设计的。

http://www.fruit.com/example.php/red

是相同的

http://www.fruit.com/example.php?id=red

一些与.htaccess文件修修补补才能做到这一点使用所谓的正则表达式,或正则表达式。 如果您想知道更多的我会很乐意提供一些例子。

添加“重写规则”的.htaccess文件(服务器配置文件),可以允许服务器的方式来改变服务器的文件/文件夹进行访问

//probably what the rewrite looks like of the example you provided
RewriteRule .* example.php/$0 [L]

的RewriteRules被分成4块:动作,模式,重写和标志

行动:重写规则,实质上就是让服务器知道我们将要进行重写

模式:*是我们在这个例子中的图案。 的“” 代表任意字符,这意味着匹配任何字符,“*”告诉它重复此。 所以,匹配重写后的任何字符。

重写是执行此页面,所以使用example.php是重写。 在这个“$”告诉它从哪里开始重写。 因此,我们将开始在“$”符号的重写,并使用我们的模式。 我们的模式“ *”告诉我们,以匹配任何字符,在这种情况下,红色。

在[L]是指最后的规则。 就是这样,没有规则可循。 您可以使用多个重写规则的多个页面。

所以,现在,而不是使用使用example.php?ID =红,服务器现在知道后启动“使用example.php /”,以配合我们提供的任何字符。



文章来源: Need some answer about example.php/example