详细信息 您现在的位置是:首页 > ThinkPHP
thinkphp6通过param、get、post等获取参数时多了一个路径参数url key
来源:小程
发布时间:2022-07-19
1396 人已围观
摘要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参数。
站点信息
- 电话:15226178738
- QQ:1697915848
- 邮箱:1697915848@qq.com