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