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

移除PHP后缀的.htaccess配置问题:目录访问失败且POST数据丢失

解决.htaccess移除.php后缀时POST数据丢失及目录访问问题

你的问题核心在于两点:POST请求被强制转为GET导致数据丢失,以及规则路径匹配未适配app目录的部署位置。以下是修正后的配置:

RewriteEngine On

# 仅对GET请求重定向移除.php后缀,保留POST请求的数据与方法
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{THE_REQUEST} /([^/.]+)\.php [NC]
RewriteRule ^ %1 [NC,L,R=301]

# 内部重写:将无.php后缀的请求映射到对应.php文件(仅文件存在时生效)
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

# 目录访问默认指向index.php
DirectoryIndex index.php

关键修改说明:

  • 新增RewriteCond %{REQUEST_METHOD} GET:只对GET请求做URL重定向,POST请求直接跳过该规则,避免请求方法变更导致数据丢失。
  • 调整捕获组为([^/.]+):适配.htaccess在app目录的场景,避免错误捕获目录前缀。
  • 内部重写规则改为^(.*)$ $1.php:更灵活匹配所有请求路径,确保app目录下的所有.php文件都能被正确映射。
  • 添加DirectoryIndex index.php:访问app目录时自动指向index.php,解决目录直接访问的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:02:36