路线在 laravel 4.2 中不起作用

Posted

技术标签:

【中文标题】路线在 laravel 4.2 中不起作用【英文标题】:Routes are not working in 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]

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

【问题讨论】:

【参考方案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 的内容上移。

    修改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]

【讨论】:

以上是关于路线在 laravel 4.2 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

postIndex() 在 Laravel 中不起作用

注册在 Laravel 5 中不起作用

Laravel 根路由“/”在子域的前缀路由中不起作用

路由到子文件夹中的控制器在 Laravel 4 中不起作用

Laravel:布局中的脚本和图像源在带有前缀的url中不起作用

为啥嵌套循环在 laravel 中不起作用