在使用thinkphp5时,我们默认采用的是伪静态,这样能够让我们的url更加美观,但有时我们会遇到需要关闭伪静态的情况,比如服务器不支持伪静态或者其他原因。下面我们就来看看如何关闭伪静态。
1. 修改配置文件
首先,我们需要在配置文件中进行一些设置,打开config目录下的app.php文件,找到'url_route_on'项,将其值改为false即可。
'url_route_on' => false, // 关闭路由功能
1.1. 关闭路由功能的影响
关闭路由功能后,URL地址中的参数传递方式从伪静态形式变为了普通的query string形式。例如,我们要访问用户控制器下的login方法,传递一个参数,原本的url地址为:
http://localhost/user/login/id/1
关闭路由功能后,url地址变为:
http://localhost/index.php/user/login?id=1
1.2. 配置文件修改注意事项
注意关闭路由功能会对代码维护和阅读造成一些困难,因此除非必要,建议还是使用默认的伪静态方式。
2. 通过修改.htaccess文件关闭伪静态
如果服务器或环境不支持修改配置文件关闭伪静态,还可以通过修改.htaccess文件来实现。
首先,找到项目根目录下的.htaccess文件,如果没有,请新建一个,然后在文件中添加以下代码:
RewriteEngine off
这么做的原因是在thinkphp5中,开启了Rewrite语法,前提条件是要开启htaccess。
如此设置后,所有的网页依旧可以正常访问,但是url中将不再含有伪静态的标记。
3. 总结
通过上述两种方法,我们可以很方便的关闭thinkphp5中的伪静态,但是我们建议在能够使用伪静态的情况下还是使用伪静态,因为这样可以更好地保护网站安全,提升用户体验,同时还能够提高网站的SEO效果。同时,在使用伪静态的情况下,修改url地址并不会改变实际路径,可以更好地控制网站的内部交互,也便于代码维护和管理。