文章摘要:php路由教程
路由是网络请求的url与thinkphp应用层的逻辑处理地址的对应关系。如果想具体了解PHP路由是什么,那不妨 […]
路由是网络请求的url与thinkphp应用层的逻辑处理地址的对应关系。如果想具体了解PHP路由是什么,那不妨接着往下看吧!
什么是PHP路由
路由就是网络请求的url与thinkphp应用层的逻辑处理地址的对应关系。
通俗的说:路由就是把url的请求优雅的对应到你想要执行的操作方法。
官方文档里面是这样子定义的=>路由的作用是简化URL访问地址,并根据定义的路由类型做出正确的解析。
手动解释一下:平常我们按照习惯去访问我们的ThinkPHP项目的时候,常规的url应该是这样子写的,(本地举例)http://localhost/项目名/public/index.php/模块名/控制器名/方法名。
PHP可以不要路由吗
php可以不要路由,但是路由功能对网站安全和SEO是有帮助,如thinkphp的路由可以让你的URL地址更加简洁和优雅。
比如在没有定义路由时的访问url为http://serverName/index.php/Home/News/read/id/8,在定义路由后可以通过http://serverName/index.php/Home/new/8进行相同效果的访问。
PHP的URL路由方式
总体来说就是:获取路径信息->处理路径信息。
第一种是通过url参数进行映射的方式,一般是两个参数,分别代表控制器类和方法比如index.php?c=index&m=index映射到的是index控制器的index方法。
第二种,是通过url-rewrite的方式,这样的好处是可以实现对非php结尾的其他后缀进行映射,当然通过rewrite也可以实现第一种方式,不过纯使用rewrite的也比较常见,一般需要配置apache或者nginx的。
第三种,就是通过pathinfo的方式,所谓的pathinfo,就是形如这样的url。
xxx.com/index.php/c/index/aa/cc,apache在处理这个url的时候会把index.php后面的部分输入到环境变量$_SERVER['PATH_INFO'],它等于/c/index/aa/cc。
然后我们的路由器再通过解析这个串进行分析就可以了,后面的部分放入到参数什么地方的,就依据各个框架不同而不同了。