Laravel 4.2 - NotFoundHttpException

时间:2014-11-13 21:52:53

标签: php laravel

我刚刚开始构建Laravel应用程序并遇到路由问题。

  1. Laravel版本 - 4.2
  2. PHP版本 - 5.5
  3. 我正在使用XAMPP
  4. 我在Apache
  5. 上激活了重写模块

    这是我的路线档案:

    <?php
    
    Route::get('/', array(
        'as' => 'index',
        'uses' => 'IndexController@index'
    ));
    
    Route::get('/account', array(
        'as' => 'account',
        'uses' => 'AccountController@get_create'
    ));
    

    我的控制器看起来像这样:

    <?php
    
    class IndexController extends BaseController
    {
        public function index()
        {
            return View::make('index');
        }
    }
    
    <?php
    
    class AccountController extends BaseController
    {
        public function get_create()
        {
            return 'asd';
        }
    
        public function post_create()
        {
    
        }
    }
    

    这是我的错误:

    Symfony\Component\HttpKernel\Exception\NotFoundHttpException thrown with message ""
    
    Stacktrace:
    #11 Symfony\Component\HttpKernel\Exception\NotFoundHttpException in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:5680
    #10 Illuminate\Routing\RouteCollection:match in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:5004
    #9 Illuminate\Routing\Router:findRoute in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:4992
    #8 Illuminate\Routing\Router:dispatchToRoute in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:4984
    #7 Illuminate\Routing\Router:dispatch in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:715
    #6 Illuminate\Foundation\Application:dispatch in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:696
    #5 Illuminate\Foundation\Application:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:7744
    #4 Illuminate\Session\Middleware:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:8351
    #3 Illuminate\Cookie\Queue:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:8298
    #2 Illuminate\Cookie\Guard:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:10961
    #1 Stack\StackedHttpKernel:handle in C:\xampp\htdocs\Protosite\bootstrap\compiled.php:657
    #0 Illuminate\Foundation\Application:run in C:\xampp\htdocs\Protosite\public\index.php:49
    

    编辑:有一件事我忘了提,索引工作正常,这是错误的帐户页面。

    我看过类似的问题,但由于某些原因,他们还没有解决。

    干杯!

1 个答案:

答案 0 :(得分:0)

听起来你的重写不起作用。如果您在index.php之前向网址添加/account吗?

例如,yourdomain.com/account将成为yourdomain.com/index.php/account

如果您的重写不起作用,但.htaccess目录中有public文件,那么您可能需要在apache配置中允许覆盖。以下是XAMPP和Laravel的示例虚拟主机配置。

我已经标记了您需要更改的行。将第一个和第三个更改为指向您网站目录中的public目录。然后将第二行更改为您在网站上使用的域名。

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/yourdomain/public"      # Change this line
    ServerName yourdomain.com                             # Change this line
    <Directory "C:/xampp/htdocs/yourdomain/public">       # Change this line
        Options Indexes FollowSymLinks ExecCGI Includes
        AllowOverride All    # This line enables .htaccess files
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

您需要重新启动Apache才能使这些设置生效。