21

我不仅是 Laravel 4 的新手,而且是使用框架的新手。我想我会从 Laravel 开始,因为它得到了如此好的评价。我已经很好地安装了 Laravel。我去 /l4/public 并查看欢迎页面。

我正在尝试向 routes.php 添加路由,以便当我导航到 /l4/public/articles 时得到响应。
我收到“在此服务器上找不到请求的 URL /l4/public/articles”。我需要运行工匠命令来编译路线吗?这可能很容易。为什么这个消息?

路由.php

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

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

4 回答 4

45

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

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

mod_rewrite 默认被注释掉。

要进行的更改:

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

变化2:

改变

AllowOverride None

AllowOverride All

现在重新启动Apache ...

Laravel 在 public 文件夹中提供的默认 .htaccess 文件指定了一些 mod_rewrite 规则。这些规则没有得到应用,因​​为 AllowOverride 设置为 none。请务必在更改这些设置后重新启动 apache。我的配置:Windows XP 上的 Apache 2.4.6。

似乎 AllowOverride 更改可能存在一些安全隐患。如果有人对此有更多信息,我想听听。

于 2013-07-22T00:03:11.543 回答
1

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

于 2013-07-21T14:23:56.310 回答
0

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

于 2013-07-21T14:38:35.950 回答
0

在 httpd.conf 更改

<Directory />
    AllowOverride none
    Require all granted
</Directory>

<Directory />
    AllowOverride all
    Require all granted
</Directory>

然后取消注释

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so
于 2015-11-23T10:39:59.510 回答