我想知道在 index.php/ 之后 URL 中的文本有什么特殊含义所以我会有一个类似 www.site.com/index.php/sometext 的地址,它是被解析为 GET 参数还是其他什么。
我正在开发一个供我个人使用的 PHP 框架。我要解决的问题是 URL 路由。
我想知道在 index.php/ 之后 URL 中的文本有什么特殊含义所以我会有一个类似 www.site.com/index.php/sometext 的地址,它是被解析为 GET 参数还是其他什么。
我正在开发一个供我个人使用的 PHP 框架。我要解决的问题是 URL 路由。
我想知道在 index.php/ 之后 URL 中的文本有什么特殊含义
那里没有内在的特殊含义。特殊含义在 first?
和 first 之后被分配#
。
也就是说,将针对/index.php
and运行相同的脚本/index.php/foo/bar/baz
,并且请求的完整 URL 将通过 提供$_SERVER
,因此脚本可以为其添加自己的特殊含义。
请参阅$_SERVER['REQUEST_URI']
和$_SERVER['PATH_INFO']
了解一些有趣的内容。print_r
上$_SERVER
也是值得的。
大多数框架使用之后的文本index.php
来路由请求,而不必依赖丑陋的查询(例如:)?page=foo
。因此,例如删除index.php
一些.htaccess
规则将提供一种拥有漂亮网址的方法:site.com/foo/bar
. 后面的部分index.php
可以通过$_SERVER['PATH_INFO']
.
之后的路径在/index.php
您的index.php
代码中可用:
$_SERVER["PATH_INFO"]
例如对于以下网址http://domain.com/index.php/nice/url
:
$_SERVER["PATH_INFO"]=/nice/url
该技术用于在 PHP 中创建干净/漂亮的 URL,而无需任何 .htaccess 支持。