php - Zend 的不区分大小写的 url 路由

标签 php zend-framework url-routing case-insensitive

我正在 CentOS 5.5 上使用 Zend Framework 1.5.3 和 PHP 5.2.6 编写的遗留代码

有这样的代码

url:"./sales/getAlerts/?bypass=1"

该 View 名为 getalerts.phtml

Controller 函数名为 getAlertsAction

代码在现有服务器上运行良好,但是当我尝试将其移动到新服务器时,代码失败,指出...'操作“getalerts”不存在...

如果我更改上述行以使警报中的 [A] 小写,则代码可以正常工作。

我已经复制了 php.ini、httpd.conf 和 .htaccess。不确定还有什么可以允许发生不区分大小写的映射。

什么允许 url 路由不区分大小写?

最佳答案

您的网址:/sales/getAlerts/?bypass=1

实际上扩展为:

  • Controller :SalesController
  • 操作:getalertsAction
  • 查看:sales/getalerts.phtml

问题是您对操作方法的命名略有错误,因此如果旧/本地服务器在本地测试时不区分大小写(大多数 PC 和 Mac 不区分大小写),则没关系。当发布到网络服务器(可能是 UNIX)时,它区分大小写,因此会损坏。

您真正想要做的是将所有 URL 保持小写并用破折号分隔单词。

如果您使用 URL:/sales/get-alerts/?bypass=1

它扩展为:

  • Controller :SalesController
  • 操作:getAlertsAction
  • 查看:sales/get-alerts.phtml

虽然您可以更改此行为,但最好坚持使用 ZF 默认值和命名约定。

关于php - Zend 的不区分大小写的 url 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3831955/

相关文章:

PHP:动态或编程捕获 block

javascript - 如何禁用 Iframe Pdf 文件上的右键单击

php - 如何让 Zend_JSON 创建对象而不是数组

php - 在 Zend Framework 中使用网站图标

PHP foreach - 在源代码中显示换行符

php - 1 个查询中有 2 个数据库

php - 使用 Zend Framework 的原始 SQL 查询

reactjs - Next.js 客户端保护路由,无需服务器端渲染

javascript - 按路线 react 路由器调节

http-headers - Phoenix 框架 : How to Route Custom Media Type?