【问题标题】:PHP Laravel Routing IssuePHP Laravel 路由问题
【发布时间】:2012-08-16 06:26:41
【问题描述】:

我目前的设置如下所示

应用程序/控制器/register.php

class register_Controller extends Base_Controller
{
    public $restful = true;
    public function get_index()
    {
        return View::make('main.register');;
    }
}

routes.php

Route::controller(Controller::detect());
Route::any('/', function()
{
    return View::make('main.index');
});
Route::any('register',function()
{
    return View::make('register.index');
});

mydomain.com 有效。

mydomain.com/index 给出 laravel 404

mydomain.com/register 给出标准 404

奇怪的是 mydomain.com/register 不应该给我一个 laravel 404 错误吗? This 页面表明 WAMP 是原因,但我的设置是在运行 PHP5、Apache2 和 mySQL 的 Ubuntu VM 上。

【问题讨论】:

  • 最后一条路线?除了踩到控制器的脚趾之外,它还有什么用……巧合的是,这需要根据我对 Laravel 的理解加以利用,Register_Controller。我不明白为什么它没有抛出 laravel 404 提醒你。
  • 我已经尝试过大写,在没有最后一条路线的情况下尝试过。我添加它是因为没有其他方法起作用,并且由于按照呈现的顺序评估路由,它不可能踩到控制器,对吧?我现在的感觉是 PHP 设置有问题。
  • Capitalised 是正确的,至少就我读过的所有 Laravel 文档而言。我可以告诉你,最后一条路线是完全没有必要的。如果控制器没有被自动检测到,请声明它:Route::Controller(array('register'));
  • 也是register.php在controllers目录而不是它的子目录?
  • register.php 不在子目录中。数组和单路由方法我都试过了,都无济于事。

标签: php url-routing laravel laravel-3


【解决方案1】:

打开 mod_rewrite 后,尝试在 apache 配置中设置“AllowOverride All”,它为我修复了它。

【讨论】:

    【解决方案2】:

    按照 Akash 的建议,确保您的 mod_rewrite 已启用。 在 Ubuntu 上使用以下命令在 Apache 上启用 mod_rewrite:

    sudo a2enmod rewrite
    

    (您不必编辑 httpd.conf)
    不要忘记重新启动 apache。

    你可以使用PHP命令

    phpinfo();
    

    检查 mod_rewrite 是否正常工作。

    【讨论】:

    • phpinfo() 确认 mod_rewrite 已加载,但仍无法正常工作。将它作为虚拟主机放在 Ubuntu 上会是一个原因吗?
    • 它适用于我的 Mint Linux(它是 Ubuntu 的衍生产品)。我无法想象为什么在虚拟主机上可能是原因。
    • 我明白了! AllowOverride All 修复它
    【解决方案3】:

    确保在 Apache (httpd.conf) 中打开 mod_rewrite

    取消注释以下行

    LoadModule rewrite_module modules/mod_rewrite.so
    

    然后重启httpd

    【讨论】:

      【解决方案4】:

      此外,您应该在检测到控制器之前设置路由。

      Route::any('/', function()
      {
          return View::make('main.index');
      });
      
      Route::any('register',function()
      {
          return View::make('register.index');
      });
      
      Route::controller(Controller::detect());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-14
        • 2018-11-20
        • 1970-01-01
        • 2018-12-15
        • 2019-09-11
        相关资源
        最近更新 更多