php - php Laravel 路由不工作?

  显示原文与译文双语对照的内容
108 5

我刚开始学习 Laravel 框架,并对路由有一个问题。

唯一正在工作的路由是附加到 Laravel的默认主路由。

在 Windows 上使用 WAMP,它使用PHP和 Apache,而且还启用了 mod_rewrite,并从 application.php 配置文件中删除了'index.php',使它的保持空字符串。

我已经创建了一个名为用户的新控制器:

class User_Controller extends Base_Controller {
 public $restful = true;
 public function get_index() 
 {
 return View::make('user.index');
 }
}

我在 application/views/user/中创建了一个名为 index.php 使用基本html代码的视图文件,并在 routes.php 中添加了以下内容:

Route::get('/', function()
{
return View::make('home.index');
});
Route::get('user', function()
{
return View::make('user.index');
});

在我的web浏览器中访问 root ( http://localhost/mysite/public ) 时,第一个路由正常工作,但是当我尝试使用我的第二http://localhost/mysite/public/user我得到一个 404未找到错误。为什么会发生这种情况?

时间:原作者:0个回答

79 2

你是否尝试将这里文件添加到你的路由文件中?

@ 之前,在这种情况下,将页面定向到用户控制器和文本段之后,将脚本引导到 user 函数 public function get_index()

你正在使用 $restful,在这种情况下,你可以将 Route 设置为 Route::any('user','user@index')这将同时处理 POSTGET,而不是分别将它们写出来。

原作者:
67 2

使用WAMP点击 WAMP icon -> apache-> modules-> 滚动和检查rewrite_module重新启动 LoadModule rewrite_module

注意,一旦启用了"rewrite_module服务器应用程序会自动重新启动"

原作者:
68 5

在我的Ubuntu LAMP 安装上,我用以下 2个修改解决了这个问题。

  • 在apache服务器上启用 mod_rewrite:sudo a2enmod rewrite
  • 为/var/www 目录( 这是我的主要文档 root ) 修改 /etc/apache2/apache2.conf,更改"allowoverride"指令:AllowOverride All

然后重启Apache服务器:service apache2 restart

原作者:
...