【问题标题】:Routes are not working in laravel 4.2路线在 laravel 4.2 中不起作用
【发布时间】:2014-08-26 00:37:53
【问题描述】:

我是 laravel 的新手。在我的项目中,路线无法正常工作。我已经参考了很多答案,但没有任何效果。在我的项目中,我的 路线 如下

    Route::get('/',array('uses'=>'maincontroller@index'));
    Route::get('first',array('uses'=>'maincontroller@first'));

我的控制器..

class MainController extends BaseController
{

    public function index()
    {
        return View::make('site.index');
    }

    public function first()
    {
        return View::make('site.firstpage');
    }}

我妥善保存了我的视图文件。 当我给的时候

    localhost/gc/public/

它会正确加载我的索引页面。但是当我给的时候

    localhost/gc/public/first 

它不起作用。它抛出一个错误

    Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

当我这样给予时

     localhost/gc/public/index.php/first.

它工作正常。但我需要正确的路由。

有人说我的 .htaccess 文件可能有问题。 我的 htaccess 文件看起来像这样

   <IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

但我需要知道如何解决路由问题。

【问题讨论】:

    标签: .htaccess laravel-4 routing laravel-routing


    【解决方案1】:

    您的路由控制器名称需要与实际控制器匹配。

    Route::get('/',array('uses'=>'MainController@index'));
    Route::get('first',array('uses'=>'MainController@first'));
    

    另外,如果您只需要uses 属性,那么您可以简单地编写您的路线:

    Route::get('/', 'MainController@index');
    Route::get('first', 'MainController@first');
    

    【讨论】:

      【解决方案2】:

      你需要做以下事情:

      1. 首先将公共目录的所有内容复制到您的根目录中,即将公共文件夹 1 的内容上移。

      2. 修改index.php的内容
        从 => "需要 __DIR__.'/../bootstrap/autoload.php';"
        "$app = require_once __DIR__.'/../bootstrap/start.php';"

      To => "需要 DIR.'/bootstrap/autoload.php';"
      "$app = require_once DIR.'/bootstrap/start.php';"

      还有 bootstrap/paths.php 的内容

      来自 => "'public' => __DIR__.'/../../',"
      To => "'public' => __DIR__.'/..',"

      3.最后在你的根目录下创建.htaccess文件并写入。



      选项 -MultiViews

      重写引擎开启
      重写规则 ^(.*)/$ /$1 [L,R=301]
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^ index.php [L]

      【讨论】:

        猜你喜欢
        • 2015-11-26
        • 2019-12-04
        • 2014-11-21
        • 2015-04-12
        • 2017-10-02
        • 2013-05-03
        • 2014-09-08
        相关资源
        最近更新 更多