详细信息 您现在的位置是:首页 > ThinkPHP

thinkphp6通过param、get、post等获取参数时多了一个路径参数url key

来源:小程 发布时间:2022-07-19 1218 人已围观

摘要thinkphp6做东西上线时发现通过param、get、post等获取参数多出一个路径rul key参数。导致一些方法报错了

网站换服务器,上线后发现存数据的时候报错。看了一下在ThinkPHP6 通过param、get、post等获取参数多出一个路径rul key参数。导致存数据的时候报错了


解决办法:

1、修改伪静态配置文件


以apache为例,我们可以发现thinkphp5.0和thinkphp6的伪静态配置文件.htaccess有一点不一样,就是在最后一行不一样。thinkphp5.0的默认.htaccess内容如下:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>


而thinkphp6的默认.htaccess内容如下:

<IfModule mod_rewrite.c>
 Options +FollowSymlinks -Multiviews
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>


通过实测可以知道,只要把老版本默认的.htaccess最后一行覆盖thinkphp6默认的.htaccess的最后一行即可,也就是

RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

改成

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

即可。


2、直接在应用中进行参数过滤

除了修改伪静态配置文件,我们还可以通过手写业务逻辑代码快速过滤掉对应多余的key参数。


上一篇: TP5 where多条件查询

下一篇: 返回列表

站点信息

  • 博主:小程
  • QQ:1697915848
  • 邮箱:1697915848@qq.com