路线在 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文件并写入。
【讨论】:
以上是关于路线在 laravel 4.2 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章