[fastadmin] 第三十六篇 FastAdmin 商城第三方插件路由,微信登录失效 - 完整解决方案。 路由配置与插件bug 配置文件手动修改
错误展示
这里用到了插件内的 登录写法。但是调用出错。 猜测是配置或者路由问题
环境
fastadmin 请求
www.XXXX.com/addons/third/api/getA...
报错403
我的服务器是apache4.2,php 7.4
addons 文件夹权限给的是777
分析问题
1. 常见的 fastadmin 403 错误分析
博客:[fastadmin] 第三十五篇 FastAdmin 403 常见问题
2. 查看apache 错误日志 发现是 3F问题
apache 错误日志 如下[Fri Feb 14 12:10:03.813234 2025] [rewrite:error] [pid 13724:tid 13762] [client 103.99.106.39:52300] AH10508: Unsafe URL with %3f URL rewritten without UnsafeAllow3F
3. 分析3F问题
这个错误是 Apache 2.4.49 及以后版本的一个安全限制导致的。这是一个安全更新,用来防止某些 URL 注入攻击。让我们来解决这个问题:
- 在 Apache 配置文件中添加
UnsafeAllow
指令。编辑 Apache 配置文件(通常是/etc/apache2/apache2.conf
或者虚拟主机配置文件):
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
# 添加这一行
UnsafeAllow 3F
</Directory>
- 或者在
.htaccess
文件中添加(如果你有权限修改 Apache 主配置,建议使用方法1):
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
# 添加这一行
UnsafeAllow 3F
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
修改完后,重启 Apache:
4. 复测 报错500. 查看apache 报错
采用 方法二,报错了,
[Fri Feb 14 12:13:19.888490 2025] [core:alert] [pid 15699:tid 15731] [client 103.99.106.39:49973] /www/wwwroot/maigeyin40/5i40-pc-h5-fastadmin/public/.htaccess: Invalid command 'UnsafeAllow', perhaps misspelled or defined by a module not included in the server configuration
5.再次分析问题
这个错误表明 UnsafeAllow
命令在你的 Apache 版本中不被支持或者相关模块未启用。让我们尝试其他解决方案:
修改 .htaccess
文件,使用更基础的重写规则:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
# 修改重写规则,使用更宽松的匹配
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:/$1]
</IfModule>
6. 问题解决
成功
2.追加问题,手机公众号登录失效。
定位到接口,发现返回的 appid 都是10000
2.1 错误分析
找到 url 函数。
点进去找到具体方法 打印输出查看
打印图如上图。
2.2 发现 appid 10000 密码123456 猜测是不是配置文件读取错误
2.3 全局查询123456 读取源
2.4 修改配置文件后尝试
打印已经生效。
已经可以完成登录
本作品采用《CC 协议》,转载必须注明作者和本文链接