htaccess 指令后 POST 变为 GET

2023-12-12

我在 Apache htaccess 文件中使用以下指令隐藏 php 文件扩展名

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

我有一个像这样的简单 html 表单

<form action="register.php" method="post">
  <input type="text" name="name">
  <input type="submit">
</form>

在我的 PHP 页面中,这就是我之前检查表单是否已发布的方式

if ($_SERVER["REQUEST_METHOD"] == "POST") {
/* code to process the post */
}

但由于我添加了 htaccess 指令来隐藏 php 文件扩展名,因此“POST”变为“GET”,并且上述代码永远不会执行。有没有好的方法来处理这个问题?我知道这是内部重定向导致的,但是有没有一种优雅的方法来处理这个问题?出于显而易见的原因,我不想使用以下方法

if (isset($_POST['submit'])) {

POST不会成为GET,这是由于您的第一个重定向规则:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

哪个正在捕获请求.php并重定向到一个没有的 URL.php在里面。你正在看$_SERVER["REQUEST_METHOD"] 被这条规则重定向后.

要修复它,请这样:

RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

即不重定向POST要求避免POST数据丢失。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

htaccess 指令后 POST 变为 GET 的相关文章

  • 使用 .htaccess 启用 PHP 短标签

    我在自己的 Centos 服务器上设置了 Apache 并具有多个虚拟 Web 服务器 并且我希望仅为位于以下位置的其中一个 Web 服务器启用 PHP 短标记 var www ostickets html 我可以通过添加成功启用短标签sh
  • 从文本块中提取相关标签/关键字

    我想要一个特定的实现 以便用户提供如下文本块 要求 使用 Linux Apache 2 的 LAMP 环境的工作知识 MySQL 5 和 PHP 5 Web 2 0 标准知识 熟悉 JSON 使用框架 Zend OOP 的实践经验 跨浏览器
  • header() 错误未在 php 中显示

    我写了一个PHP程序 我用session start and header 函数 我知道在向客户端发送任何内容之前应该使用此函数 没关系 但是为了测试 我向客户端发送了一条测试消息echo test 在使用 header 之前 但我没有收到
  • 如何防止 CakePHP 中重复表单提交?

    我发现 CakePHP 中的安全组件通过将令牌作为隐藏值添加到表单中来帮助防止 CSRF 我想知道是否有办法防止使用此组件或其他组件 帮助器重复表单提交 在之前的项目中 我使用了保存在会话中的唯一哈希值 该哈希值会在提交时读取并删除 重复提
  • 根据数组计数填充复选框

    我是新来的php我已经使用了它的开发php array 我想填充checkboxes根据数组计数 为了做到这一点 我尝试了以下方式 它对我不起作用 有什么方法可以做到这一点 在我的例子中 数组计数 5 所以我相应地需要 5 个复选框
  • 在 Kohana 中,可以触发 404 错误吗?

    我有一个名为articles 它创建从数据库获取相关数据的文章模型 我想 如果我调用的方法返回false 触发 404 错误 这是我到目前为止所拥有的 articleName this gt uri gt segment articles
  • PMA 4.5.2.0 file_exists():open_basedir 限制生效

    从 PPA 在我的 Ubuntu 服务器上安装 phpMyAdmin 后 https launchpad net nijel archive ubuntu phpmyadmin https launchpad net nijel archi
  • 更新重复密钥上的复合密钥 [重复]

    这个问题在这里已经有答案了 我需要更新新行 如果两者都满足 date dat and empId who 作为复合键 但如果其中之一或两者不同 则插入 sql INSERT INTO history SET endtimestamp now
  • 智能位置表单字段

    我的用户注册表单上有一个文本字段location 我本质上希望这个字段能够根据 Google 地图 或同等地图 进行验证 只允许有效位置通过 最好采用类似的格式滑铁卢 伦敦 or 伦敦 英国 要求 除了位置名称之外 我还想返回该位置中心的坐
  • PHP上传文件产生错误代码4。为什么?

    HTML
  • 使用 HTTP-Basic 身份验证发出 HTTP GET 请求

    我需要为我正在开发的 Flash Player 项目构建一个代理 我只需要使用 HTTP Basic 身份验证向另一个 URL 发出 HTTP GET 请求 并提供来自 PHP 的响应 就好像 PHP 文件是原始源一样 我怎样才能做到这一点
  • TCPDF/PHP 和字体:大写数字(血统数字?旧样式?)

    我得到了一种特殊的字体 上面有这样的数字 例如 正如您在 3 上看到的 一些数字下降到基线以下 我想要实现的是 这些数字不会低于该线 并且看起来像这样 在 Word 中 可以在相同字体的字符设置中轻松设置 如何在 TCPDF 中呈现数字 我
  • CSS 无法与 CodeIgniter 一起使用

    这是我的 CI 代码的一部分 class page extends CI Controller var Page public function construct parent construct this gt Page 1 this
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • 在 PHP 中将十进制/双精度/浮点值与 PDO 绑定的最佳方法是什么?

    看来类常量只涵盖PDO PARAM BOOL PDO PARAM INT and PDO PARAM STR用于绑定 您只是将十进制 浮点 双精度值绑定为字符串还是有更好的方法来处理它们 MySQLi 允许使用 d 类型表示 double
  • Yii 查询时对相关模型的限制

    我遇到了极限问题 我正在使用的代码如下 model PostCategory model record model gt with array posts gt array order gt posts createTime DESC li
  • 与 array_intersect 相反?

    是否有一个内置函数可以获取数组 1 中不存在于数组 2 中的所有成员 我知道如何以编程方式执行此操作 只是想知道是否有一个内置函数可以执行相同的操作 所以请不要提供代码示例 这听起来像是一份工作array diff http www php
  • 禁用/启用用户访问/下载,但允许 php 编辑 - 使用 chown 和 chmod

    我想 move uploaded files到某个文件夹 比方说http localhost myproject protected 并且 PHP 应该能够rm mv cp 里面的一切protected 例如 启用 禁用用户对任何文件的访问
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐

  • 如何在android中获取sdcard中所有可用的图像文件? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从模拟器的sdcard中获取所有图片并将其显示在listView中 我的sdcard下有很多文件夹 每个文件夹包含图像文件 文本文件和子文件夹 如何获取 SD 卡下所有文件夹和子文件夹中的所有可用
  • 如何在驱动模块中使用 seq_file 实现可写的 proc 文件

    在书中Linux 设备驱动程序第三版 proc文件系统作为输出方式 导出某个设备驱动程序的运行状态 然而 在某些情况下 proc文件系统用作更改驱动模块内部参数的一个接口 我用谷歌搜索了很多 发现互联网上的一些实现太旧了 他们使用creat
  • 如何创建 bash 脚本来检查 SSH 连接?

    我正在创建一个 bash 脚本 该脚本将登录远程计算机并创建私钥和公钥 我的问题是远程机器不是很可靠 而且它们并不总是处于运行状态 我需要一个 bash 脚本来检查 SSH 连接是否已启动 在实际创建密钥以供将来使用之前 您可以使用 ssh
  • Perl:解释如何使用“uni::perl”模块 - 加载编译指示和其他模块

    In my 上一个问题我问如何一次使用多个模块 拿到一个完美的答案 and 另一个是什么给我指出了现代 Perl模块什么的 其实很简单 经过一番搜索 CPAN 我发现了另一个名为大学 perl 真正复杂的是 它相当于 use strict
  • 我的类似界面逻辑有什么问题?

    所以问题如下 为每个进入队列的学生分配一个唯一的 ID 队列根据以下标准 优先级标准 为学生提供服务 首先服务的是累积平均绩点 CGPA 最高的学生 任何具有相同 CGPA 的学生都将按姓名按升序区分大小写的字母顺序排列 任何具有相同 CG
  • JS 中的全局变量有害吗? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 根据这篇文章 http www mediaevent de javascript globale lokale variablen html 全局变量在 JS 中非常危险 很抱歉
  • 为什么 java.io.FileDescriptor 的构造函数是公共的?

    JavaDoc 用于java io FileDescriptor FileDescriptor says 构造一个 无效的 FileDescriptor 对象 如果构造函数没有目的 为什么它的访问级别没有声明为包私有 这个构造函数是公共的
  • 如何计算iOS应用程序启动时间

    我想知道是否有一种快速有效的方法来确定从打开应用程序到完全加载的时间 我在想我会做一些类似的事情NSDate对象在didFinishLaunchingWithOptions并在我的中得到另一个UIViewController 然后比较它们
  • ADB 在 Windows 上并行运行多个 Android 设备

    有没有办法在多个连接的 Android 设备上并行运行 ADB 命令 我需要在 200 台设备上批量安装 5 个应用程序 亚行似乎是最快的选择 但是 如果我可以在多个设备上并行执行此操作 那么它将进一步节省时间 创建一个batch inst
  • Swift 检查文本字段是否为空

    我知道有大量的堆栈溢出页面解释了如何执行此操作 但每次我从这里获取代码并将其放入其中时 我都会遇到相同的错误 并且该错误的值是 字符串 没有成员 文本 有什么可靠的方法可以快速检查文本字段是否为空吗 let userEmail userEm
  • C 将指针传递给函数指针并使用 malloc

    我正在尝试获取标准输入以扫描两个二维并行数组 arrAtk arrDef x行 xy列 yy每行的长度都是可变的 第一行输入是x每个数组中的行数 第二行是y为第一行的列数 接下来是y要读入 arrAtk 数组的整数 然后另一个y要读入 ar
  • UIImageView Mask Layer 不是来自角落,直到第一次滚动 PageViewController

    我想达到这个结果 所以我需要在底部添加面具 但这是我得到的 我尝试过的代码 private func setupImageCutPath let path UIBezierPath path move to zero path addLin
  • Jquery / Javascript 根据输入字段更改表单操作

    我有这样的表格
  • 如何在 Joomla 中使用 AJAX 更改另一个选择列表

    我有一个国家列表和每个国家的城市列表 我将两者都设置为下拉列表 我的问题是 当所选国家 地区发生变化时 如何更改列出的城市 这是我的 XML 代码
  • 我可以同时运行 Xcode 3 和 Xcode 4 吗?

    我刚刚升级到 Xcode 4 我有一个项目仍然依赖于 Xcode 3 如何重新安装 Xcode 3 并且不会搞砸当前的 Xcode 4 安装 没问题 Xcode 3 安装程序允许您选择安装目录 我的偏好是将其安装在 Developer ol
  • == 或 .Equals()

    为什么要使用其中一种而不是另一种 是身份测试 如果被测试的两个对象实际上是同一个对象 它将返回 true Equals 执行相等测试 如果两个对象认为自己相等 则返回 true 身份测试速度更快 因此您可以在不需要更昂贵的相等测试时使用它
  • 如何通过添加附加参数来重定向传入的 URL 请求

    问题 我的服务器应用程序收到传入的 HTTP 请求 请求是这样的 http example com id abc 我需要解析这个请求 修补额外的 URL 参数并调用托管的 html 文件 所以 http example com id abc
  • jaxb java 类到多个 xml 映射

    我有几个 java 类 我想使用 jaxb 将它们转换为 xml 我不需要根据模式生成类 我需要能够将类映射到不同的 xml 格式 所以我不想使用注释 据我所知 最好的选择似乎是使用外部 xml 绑定 所以我想知道 1 我正在使用日食 我是
  • vcl.h:没有这样的文件或目录

    我正在寻找在 Visual C 中编译一些旧的源代码 然而 我收到的许多错误中的第一个是 vcl h No such file or directory 这似乎是对 Visual Component Library 的引用 它似乎是 Bor
  • htaccess 指令后 POST 变为 GET

    我在 Apache htaccess 文件中使用以下指令隐藏 php 文件扩展名 RewriteCond THE REQUEST A Z 3 s php NC RewriteRule 1 R L NC RewriteCond REQUEST