将 urlencoded URL 作为参数传递给 CakePHP 的控制器/操作

2023-12-03

我对 CakePHP 相当陌生,因此,我以前用 Zend Framework 做的一些基本事情被 Cake 打败了。

我正在开发一个项目,我必须将命名参数传递给控制器​​/操作。设置路由并传递参数相当简单,我的问题是当参数是 urlencoded url 时。

例如:http://www.cakephp.com/controller/action/http%3A%2F%2Fwww.google.com无论控制器和操作设置如何,都会抛出 404,但传递 /controller/action/http://www.google.com 以某种方式工作,唯一的问题是它将 http 标识为命名参数。换句话说,如果我这样做 /controller/action?url=http://www.google.com 它将起作用。

我为此使用的解决方法是将值作为 base64 编码字符串传递,但它带来了一些限制。例如,如果它是一个API,则无法保证使用该API的系统可以对字符串进行base64编码。

无论如何,最好的解决方案仍然是将 url 编码的字符串传递给命名参数。问题是,为什么 CakePHP 不接受 urlencoded 字符串作为参数,并且为什么它会抛出 404?

预先感谢大家。


我已经添加了解决此问题的方法。之前指向帖子的答案实际上回答了发生这种情况的原因以及解决方案之一。所发生的情况是,Apache 上 .htaccess 的解决方法有点危险,因为它会禁用安全标准。

有两种方法可以通过代码解决这个问题(我正在使用这两种方法):

  1. 将所有 url 作为 base64 编码字符串发送
  2. 接受 url 作为命名参数,但是,您会注意到,它将任何 http:// 转换为 http:/,因此有必要正确识别何时发生这种情况,然后才更正字符串。

它远不是一个漂亮的解决方案,但它绝对是一个实用的解决方案。

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

将 urlencoded URL 作为参数传递给 CakePHP 的控制器/操作 的相关文章

随机推荐

  • 如何更改面板滚动条的背景颜色?

    因此 我正在为我的应用程序制作一个深色模式选项 并且我希望滚动条的背景颜色也改变颜色 这样它就不会看起来不合适 我试图寻找解决方案 但到目前为止我只找到了控件中滚动条的代码 但我需要更改面板的滚动条 有人知道该怎么做吗 预先非常感谢 当我开
  • 如何将 SecureString 转换为 System.String?

    关于通过创建 System String 来取消 SecureString 的所有保留意见aside 如何做呢 如何将普通的 System Security SecureString 转换为 System String 我相信许多熟悉 Se
  • Cassandra 与日志记录活动

    我将卡桑德拉与昆德拉一起使用 我的问题很简单 有什么方法可以记录所有查询 请求到 Cassandra 吗 我想知道服务器站点上到底发生了什么 Regards Tom 为 org apache cassandra thrift Cassand
  • 在服务中处理 $http 响应

    我最近发布了我面临的问题的详细描述here在这样 因为我无法发送实际的 http请求时 我使用超时来模拟异步行为 在 Gloopy 的帮助下 从我的模型到视图的数据绑定工作正常 现在 当我使用 http代替 timeout 本地测试 我可以
  • 我的“重复排列”代码中的递归调用是否会累积而堵塞 RAM?

    一些背景知识 我是一名业余程序员 几个月前 在学习了一段时间的 Mathematica 编程 我的第一语言 之后 我利用业余时间学习了 Haskell 我目前正在阅读 Will Kurt 所著的第二本 Haskell 书 但要让自己对 Ha
  • 音频无法在 Android 中播放。 android.content.res.Resources$NotFoundException:资源 ID #0x0

    我正在尝试在 Android 中播放音频文件 但它似乎崩溃并给出了ResourcesNotFoundException 音频文件保存在 res 内的 raw 文件夹中 音频文件的名称由随机生成的数字确定 然后将其连接到 音频 int res
  • 如何关闭 iframe?

    打开 iframe 后 有时需要关闭它 到目前为止 我只是将 iframe 从其父节点中删除 从而将其与 DOM 断开 但是 我发现这并不会立即结束 iframe 的生命 并且它的 javascript 代码仍然可以回调到父窗口 而父窗口不
  • Spring 反应式的 Spring Security 会话超时

    我有一个集成了 Spring Security 的反应式应用程序 它是由 springinitializr 创建的 主要包含 3 个包 spring boot spring security 和 webflux 我试图通过以下配置来配置会话
  • gPRC(protobuf)可以返回空消息吗?

    我们的客户端调用 gRPC 服务器 理想情况下它应该返回 MyMessage 响应对象 但是这个MyMessage对象可以为null吗 或者gRPC不能返回null对象 因为如果它是null grpc会抛出异常 回答你的问题 检查这些谷歌文
  • 内联函数有什么好处?

    在 C 中使用内联函数的优点 缺点是什么 我发现它只会提高编译器输出的代码的性能 但是有了当今优化的编译器 快速的 CPU 巨大的内存等 不像 1980 年 优点 通过在需要的地方内联代码 您的程序将在函数调用和返回部分花费更少的时间 它应
  • Swift 数组中最大值及其索引的高效算法

    我编写了一个 Swift 算法 用于查找 Swift 数组中的最大值及其索引 这是受到 Matlab 和 Octave 中 max m 函数的启发 这里的专家能否提出一种提高该算法速度的方法 我的意思是它是否可以做得更快 或者您认为这对于大
  • 设置网页宽度

    我是网页设计新手 我想设置页面宽度 使其在 800x600 分辨率的屏幕上显示良好 我通常使用表格 但我在某处读到过度使用表格会降低网站的性能 我还可以使用什么其他东西以及如何设置宽度 使用 DIV 而不是表看起来像这样 div style
  • 自动布局、屏幕旋转和 UIView 动画

    我遇到了一个 UIView 问题 我将其添加到屏幕底部 并在按下按钮时将其动画化以填充大部分屏幕 视图将按预期上下动画并旋转 如果我尝试在横向时制作动画 它会中断并给出错误消息 Assertion failure in UIScrollVi
  • 单击联系人按钮时,在自定义表格视图控制器中显示 iOS 设备中的所有联系人,而不是设备的默认视图

    在我的应用程序中 当我单击联系人按钮时 我需要在自定义表视图控制器中显示设备中的所有联系人 我发现很多使用地址簿框架的演示 但其中的联系人使用 ABPeoplePickerNavigationController 以默认设备格式显示 但我需
  • Fluent Security - 配置参数化控制器操作

    我做了很多研究并测试了 FluentSecurity 库的 1 4 和 2 0 版本 但我似乎无法使用配置模式 configuration For
  • Python 中使用字典代替动态变量名

    我有一个包含卡车配置的长文本文件 在每一行中 卡车的一些属性都以字符串形式列出 每个属性在字符串中都有自己固定宽度的空间 例如 2 chracters number of axles 2 characters weight of the f
  • Facebook。如何获取我的应用程序的所有用户列表?

    在询问之前我一直在谷歌上搜索 但不幸的是一切都是徒劳的 让我的应用程序的所有 facebook 用户都拥有的唯一可能是维护我自己的数据库 或者也许任何 Facebook API 都提供了更简单的方法 谁能帮我吗 我怎么做 Facebook
  • 在 PHP 中将 HTML 转换为 CSV?

    我有一个像这样的html表结构 tr style font weight bold td ID td td Navn td td Adresse td td By td td Post nr td td E mail td td Telef
  • 对象解构防止打字稿歧视

    我一直在使用标记的联合类型来处理打字稿歧视 并且遇到了一些奇怪的事情 如果我打开实际对象属性 一切都会按预期进行 但如果我使用解构 打字稿会报告错误 我认为这与编译时解构的实际工作方式有关 但我不确定 您可以在以下位置查看此示例代码操场 i
  • 将 urlencoded URL 作为参数传递给 CakePHP 的控制器/操作

    我对 CakePHP 相当陌生 因此 我以前用 Zend Framework 做的一些基本事情被 Cake 打败了 我正在开发一个项目 我必须将命名参数传递给控制器 操作 设置路由并传递参数相当简单 我的问题是当参数是 urlencoded