ZF1正在调用意外的控制器

时间:2014-10-15 20:07:55

标签: zend-framework

我有名为

的控制器
  

AbcController

,这是默认模块。所以它通常被称为

somedomain.com/abc

..并且所有内容都已正确发送,但是如果是uf URL

  

somedomain.com/!abc

OR

  

somedomain.com/@abc

我仍然被送到

  

AbcController

,问题是为什么?或者更好的问题是,url参数究竟在哪里转换为控制器名称?我试图通过调试器找到几个小时。

预期行为:未找到控制器

当前行为:查看!未找到abc / inde.phtml

这很奇怪,请指点我。谢谢。

更新

所以,经过更多的时间我找到了原因,为什么这样的人物呢!和@被修剪:

Zend_Controller_Dispatcher_Abstract::_formatName()

功能正在执行以下操作:

 $segment        = preg_replace('/[^a-z0-9 ]/', '', $segment);

问题是,如何跳过它并获得正确的状态(不是现有的控制器)

1 个答案:

答案 0 :(得分:0)

好的,所以没有明确的解决方案,或者至少我没有找到任何解决方案。实际上我有解决方法 - 使用静态路由器来执行其他操作,例如“ind”而不是“index”。如果字符不正确,控制器将匹配,但默认操作不匹配,将导致请求404响应。

问题出现在ZF1本身,因为控制器名称是已绑定的,但操作名称不是。我想,Shoulld既可以是也可以不是。