Laravel 4简单路由使用mod_rewrite和.htaccess无效

时间:2013-07-21 13:45:17

标签: laravel laravel-4

我不仅是Laravel 4的新手,也是使用框架的新手。我以为我会从Laravel开始,因为它得到了如此好的评价。 我有一个很好的安装Laravel。我转到/ l4 / public并查看欢迎页面。

我正在尝试添加一条路线到routes.php,这样当我导航到/ l4 / public / articles时,我会收到回复。
我得到“在此服务器上找不到请求的URL / l4 / public / articles。”我是否需要运行工匠命令来编译路线?这可能很简单。为什么会这样留言?

routes.php文件

Route::get('/', function()
{
    return View::make('hello');
});

Route::get('articles', function ()
{
    //return View::make('articles');
    return "Articles hello there";
});

3 个答案:

答案 0 :(得分:44)

问题通过apache的httpd.conf文件中的两个编辑更改来解决。

AllowOverride None是默认值。 AllowOverride控制是否处理.htaccess文件。

默认情况下,

mod_rewrite被注释掉了。

更改:

更改1:通过取消注释来激活mod_rewrite。

改变2:

更改

AllowOverride None

AllowOverride All

现在重启Apache ......

Laravel在公用文件夹中提供的默认.htaccess文件指定了一些mod_rewrite规则。由于AllowOverride设置为none,因此未应用这些规则。更改这些设置后,请确保并重新启动apache。 我的配置:Windows XP上的Apache 2.4.6。

似乎可能会对AllowOverride更改产生一些安全隐患。如果有人有这方面的其他信息,我想听听。

答案 1 :(得分:1)

该错误基本上说路由器无法找到您的请求。确保您已保存更改。 如果你使用artisan命令来运行页面,只需重新运行命令“artisan Serve”。

答案 2 :(得分:0)

你需要mod_rewrite。尝试:l4 / public / index.php / articles