如何开启服务器 thinkphp pathinfo的访问方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何开启服务器 thinkphp pathinfo的访问方式相关的知识,希望对你有一定的参考价值。

参考技术A 楼主服务器是apache还是nginx?
算了我直接给你说吧
如果是apache的呢,那么你要开启apache的rewrite,然后重启apache就可以了
如果是nginx的呢,你在.conf文件里面的入口匹配上改成~.php就可以了
参考技术B   这篇文章主要介绍了ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结,是ThinkPHP路由访问的基础知识,在ThinkPHP开发中非常重要,需要的朋友可以参考下
  本文针对ThinkPHP中pathinfo的两种模式、四种路径访问模式和URL重写相关知识进行了总结归纳,分享给大家便于查询和借鉴。具体归纳如下:
  1、pathinfo
  访问模块IndexAction.class.php下边的test方法
  http://localhost/index.php?m=Index&a=test 等同于 http://localhost/index.php/Index/test
  2、四种路径访问模式

在config目录下边来做修改 URL_MODEL的值,分别表述如下:
  值为0 叫做普通模式。如:http://localhost/index.php?m=模块&a=方法
值为1 叫做pathinfo模式。如:http://localhost/index.php/模块/方法
值为2 叫做rewrite重写(伪静态) 可以自己写相关的rewrite规则,也可以使用系统为我们提供的rewrite规则隐藏掉index.php,生成:http://localhost/模块/方法
值为3 叫做兼容模式。当服务器上面不支持pathinfo模式的时候,但是你又在之前的路径访问格式上面,全部用的是pathinfo格式。那么它会提示你路径格式不正确。那么,你就可以用标号为3的兼容模式来处理。他的路径访问类似于http://localhost/index.php?s=模块/方法
  3、URL重写步骤:

(1)、D:\wamp\wamp\Apache2\conf\httpd.conf开启apache服务器中的URL_REWRITE模块
  (2)、AllowOverride None 将 None 改为 All
  (3)、确保config.php配置文件中 URL_MODEL 设置为 2
  (4)、把 .htaccess 文件放到入口文件的同级目录下

采用URL重写利于seo,不过会加大服务器的性能消耗。
  希望本文所述对大家ThinkPHP程序设计有所帮助。本回答被提问者和网友采纳

PATHINFO模式是thinkphp特有的吗?

pathinfo当然不是某个框架特有的,pathinfo严格上讲是HTTP服务器提供的一个预定义变量,在许多的框架中有一个重要的组件叫做路由器,这个组件可以通过使用pathinfo来实现。

考虑以下代码:

# filename:./testpathinfo.php
<?php
echo $_SERVER[\'PATH_INFO\'];

当我直接请求该文件时(留意地址栏):

若文件未得到pathinfo参数时未定义该值,这时如果我这样请求(留意地址栏):

所以,该功能配合rewrite功能可实现去除地址中的请求文件。

另外,PHP提供名为pathinfo()的函数,用于提取路径的信息:

 

 

参考:
PHP manual: pathinfo()
PHP manual: $_SERVER

 

 

 

转:https://segmentfault.com/q/1010000003979741

 

以上是关于如何开启服务器 thinkphp pathinfo的访问方式的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp5 上传服务器后 Access denied

如何让nginx支持ThinkPHP框架

如何在nginx安装thinkphp5并且开启路由

PATHINFO模式是thinkphp特有的吗?

Linux下pathInfo的配置说明(Thinkphp)

nginx下怎么支持THinkPHP