Zend framework Zend Framework如何禁用控制器
当我放置这个addres example.com/js/config时,我需要为js加载一个配置文件,但是路由器加载了一个控制器并显示错误,因为控制器不存在。在引导文件中,我放置了一个_init方法:Zend framework Zend Framework如何禁用控制器,zend-framework,zend-controller-router,Zend Framework,Zend Controller Router,当我放置这个addres example.com/js/config时,我需要为js加载一个配置文件,但是路由器加载了一个控制器并显示错误,因为控制器不存在。在引导文件中,我放置了一个_init方法: protected function _initJsConfig(){ $this->bootstrap('frontController'); $oFront = $this->getResource('frontController'); $oFront-
protected function _initJsConfig(){
$this->bootstrap('frontController');
$oFront = $this->getResource('frontController');
$oFront->setRequest(new Zend_Controller_Request_Http());
$oRequest = $oFront->getRequest();
$oRequest->setDispatched(false);
//$oFront = Zend_Controller_Front::getInstance()->getRequest();
if($oRequest->getControllerName() == 'js' && $oRequest->getActionName() == 'config'){
include('/config/config.js.php');
return;
}
}
但这不起作用。有什么想法吗?
致以最良好的祝愿 默认的ZF
.htaccess
将不提供.php
文件,而不是public
文件夹中的index.php
,因此将.php
文件移出公共空间
把它放在应用程序/configs
或类似的地方
您可能会修改
.htaccess
以只提供一个.php
文件,但您确实不希望服务器上的公共空间中存在任意.php
文件 如果控制器不存在,但请求仍被路由到ZF,我猜服务器上不存在文件js/config
,或者ZF的.htaccess规则设置得不太正确。我知道我可以编辑.htaccess文件以禁用路由,但我想隐藏一个文件,这样就没有人能看到它的扩展名(.php)。因此,当我写下以下内容时:我想开始:config.js.php文件。致以最良好的祝愿。您的代码在引导程序中不起作用,因为尚未建立路由,也未进行调度。您可以编写一个包含与您所拥有的类似代码的代码,因为您可以在控制器实际调度之前拦截它和操作(发送到不存在的控制器,然后处理错误)。