You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用.htaccess移除PHP后缀时POST请求出现Undefined index错误

解决移除PHP后缀时POST请求丢失参数的问题

问题原因

你当前的.htaccess规则中,访问带.php后缀的URL会触发302重定向到无后缀版本,但302重定向会自动将POST请求转换为GET请求,导致原本通过POST传递的email、password等参数丢失,因此PHP脚本会报Undefined index错误。

解决方案

修改重定向规则,仅对GET请求执行跳转,POST请求直接进入内部重写逻辑以保留参数:

RewriteEngine On

# 仅针对GET请求,将带.php的URL重定向到无后缀版本
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule (.*) /%1 [R=302,L]  

# 内部重写无后缀URL到对应的.php文件
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

说明

  • 新增的RewriteCond %{REQUEST_METHOD} GET条件限制重定向仅作用于GET请求,POST请求不会被跳转,直接匹配内部重写规则,POST参数可正常传递到PHP脚本。
  • 若需永久重定向(更友好的搜索引擎处理),可将R=302改为R=301。

内容的提问来源于stack exchange,提问作者joisberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:40:48