我正在 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/