magento URL访问如何工作

时间:2013-04-01 16:44:53

标签: magento url-routing

您好我想创建一个自定义表单以获取用户的输入,我可以从网址访问该表单:

http://localhost/website/index.php/contest

但是当我将它上传到magento中有多个网站设置的服务器时,我无法像以前在本地服务器上那样访问该表单。

http://www.website.org/index.php/contest

我很难过,我打了一个墙,我用Google搜索,我只是不知道该找什么,任何帮助将不胜感激。提前感谢任何人

1 个答案:

答案 0 :(得分:0)

Magento路由是一个覆盖单个Stack Overflow答案的大话题。您可以阅读setting up a controller hereprobably in too much depth routing process here的基础知识。

那就是说,这是一些一般的调试技巧。

  1. Magento可以看到你的控制器所属的模块吗?如果没有,您可能会错过app/etc/modules中的文件。 (查看“系统 - >配置 - >高级 - >禁用模块输出”中的模块列表

  2. 如果您的模块已安装,Magento可能找不到您的控制器类。 Eitehr,因为它不在那里,你有一个区分大小写的问题。向_validateControllerClassName函数添加一些临时调试代码,以确定Magento无法找到您的控制器的原因。

  3. 您可以在此处找到_validateControllerClassName功能

    #File: app/code/core/Mage/Core/Controller/Varien/Router/Standard.php
    protected function _validateControllerClassName($realModule, $controller)
    {
        $controllerFileName = $this->getControllerFileName($realModule, $controller);
        if (!$this->validateControllerFileName($controllerFileName)) {
            return false;
        }
    
        $controllerClassName = $this->getControllerClassName($realModule, $controller);
        if (!$controllerClassName) {
            return false;
        }
    
        // include controller file if needed
        if (!$this->_includeControllerClass($controllerFileName, $controllerClassName)) {
            return false;
        }
    
        return $controllerClassName;
    }
    

    var_dump子句之前的一些return false应告诉您为什么Magento无法找到和/或包含您的控制器类文件。