【问题标题】:Phalconphp routes not workingPhalconphp 路由不工作
【发布时间】:2013-10-26 10:52:10
【问题描述】:

我是 phalconphp 的新手,并且按照他们的教程进行操作,据我所知,我不需要创建特定的路由组件,并且它应该选择一个路由(如果存在)。我在这里显然可能大错特错,这意味着应该很容易纠正我!但到目前为止,唯一可以工作的控制器是我的 indexController。

这是我的引导程序

<?php

try {

//Register an autoloader
$loader = new \Phalcon\Loader();
$loader->registerDirs(array(
    '../app/controllers/',
    '../app/models/'
))->register();

//Create a DI
$di = new Phalcon\DI\FactoryDefault();

//Setting up the view component
$di->set('view', function(){
    $view = new \Phalcon\Mvc\View();
    $view->setViewsDir('../app/views/');
    return $view;
});

//Handle the request
$application = new \Phalcon\Mvc\Application($di);

echo $application->handle()->getContent();

} catch(\Phalcon\Exception $e) {
  echo "PhalconException: ", $e->getMessage();
}

然后如果我创建自己的 FooController

<?php

class FooController extends \Phalcon\Mvc\Controller
{

public function indexAction()
{

    echo "FOO";

}

public function fooAction(){
    echo "FOO";
}

}

这些操作都不会被解雇。现在我实际上收到了来自服务器的 404 错误文档。所以我不确定我的 .htaccess 文件是否有问题,尽管这是直接从教程中复制的

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
   </IfModule>

有人能看出这里有什么明显的错误吗?唯一的区别是我为 indexController 设置了一个视图。我认为是 404 让我相信这更多是服务器设置的问题,也许是我的 php 代码

【问题讨论】:

    标签: .htaccess phalcon


    【解决方案1】:

    您的 .htaccess 文件很好,不,如果您只想使用标准 MVC /controller/action 类型模式,则不需要任何路由文件。

    您的问题是您的 http 服务器未正确重写 URL。我不确定您使用的是哪个 http 服务器,因此,我无法提供有关修复 http 服务器本身的任何细节。

    【讨论】:

    • 我只是使用 apache 作为 xampp 的一部分
    • 我在 vhost.conf 中设置了 AllowOverride None,这就是这个问题,感谢您提供正确方向的指针
    【解决方案2】:

    关闭 MultiViews 否则 apache 将尝试通过添加一些扩展名(.txt、.html、.htm、.php ...)来查找文件,然后重定向变量 _url 错误。

    <IfModule mod_rewrite.c>
      Options -MultiViews
      RewriteEngine on
      RewriteRule  ^$ public/    [L]
      RewriteRule  (.*) public/$1 [L]
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 2016-09-06
      • 2013-12-20
      相关资源
      最近更新 更多