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

Ale*_*x_B 20 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";
});
Run Code Online (Sandbox Code Playgroud)

Ale*_*x_B 44

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

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

mod_rewrite默认注释掉.

要做的更改:

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

变化2:

更改

AllowOverride None
Run Code Online (Sandbox Code Playgroud)

AllowOverride All
Run Code Online (Sandbox Code Playgroud)

现在重启Apache ...

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

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

  • 我已经启用了所有功能,但仍然无法使用第二条路径."/"有效,"index.php/articles"有效,但不是"文章". (3认同)
  • 只是为了跟进.它的唯一工作方式是制作一个虚拟主机(这里有说明:http://apple.stackexchange.com/questions/30053/getting-mod-rewrite-to-work-on-mac-os-x) (2认同)