迁移WordPress主机后PHP $_GET无法读取URL参数求助
解决WordPress主机迁移后$_GET无法获取URL参数的问题
排查步骤:
检查固定链接与重写规则
新主机的URL重写配置可能未正确设置,导致GET参数丢失:- 进入WordPress后台→设置→固定链接,先切换为「朴素」格式并保存,再切回原自定义格式保存,触发重写规则更新。
- 若使用Apache,检查根目录
.htaccess文件是否存在且包含WordPress默认重写规则(权限设为644):# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress - 若使用Nginx,确认站点配置中包含传递GET参数的规则:
location / { try_files $uri $uri/ /index.php?$args; }
验证服务器QUERY_STRING与PHP配置
先确认服务器是否接收到参数,再检查PHP配置:- 临时添加代码查看原始查询字符串:
若有内容但$_GET为空,说明PHP未正确填充$_GET变量。echo '<BR>QUERY_STRING: ' . $_SERVER['QUERY_STRING']; - 检查PHP的
variables_order配置,需包含G(GET):
正常应为echo '<BR>variables_order: ' . ini_get('variables_order');GPCS,若缺失G,需修改php.ini或通过主机面板调整配置。
- 临时添加代码查看原始查询字符串:
排查主题与插件冲突
部分主题或插件可能修改/重置了$_GET变量:- 切换到WordPress默认主题(如Twenty Twenty-Four),测试是否恢复正常。
- 禁用所有插件,逐一启用排查,定位导致问题的插件。
确认URL参数格式
确保URL参数符合标准格式(如https://your-site.com/page?key1=value1&key2=value2),避免特殊字符未编码、多个?符号等格式错误。
内容的提问来源于stack exchange,提问作者Kyle Ford-Tyssen
相关产品推荐
相关产品推荐

