【发布时间】:2014-08-13 03:22:33
【问题描述】:
我是 PHP / Laravel 的新手,这可能很愚蠢,但我无法让它工作。我在routes.php 文件中定义了这两条路线:
Route::get('about', function()
{
return 'this is about';
});
Route::get('/', array('as'=>'home', function()
{
return View::make('hello');
}));
如果我像这样访问我的应用程序:http://testapp.dev:88,它会正确呈现视图。但是,如果我像 http://testapp.dev:88/home 或 http://testapp.dev:88/about
这样访问我的应用程序,我会得到 404我检查了 apache 日志,发现了这些错误:
[错误] [客户端 127.0.0.1] 文件不存在: C:/tmp/Git_Repository/website/testapp/public/about
[错误] [客户端 127.0.0.1] 文件不存在: C:/tmp/Git_Repository/website/testapp/public/home
对为什么会发生这种情况有任何想法吗?
注意:我正在使用 Wamp 并具有以下 apache 2.2.22 配置
<Directory "C:/tmp/Git_Repository/website/">
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
<VirtualHost *:88>
DocumentRoot "C:\tmp\Git_Repository\website\testapp\public"
ServerName testapp.dev
</VirtualHost>
感谢您的帮助。
【问题讨论】:
-
你的
public目录中有 Laravel.htaccess文件吗? -
看起来您的
/public目录中的.htaccess文件丢失或重写规则不起作用。确保您已安装/启用.htaccess文件:github.com/laravel/laravel/blob/master/public/.htaccess 和mod_rewrite。顺便说一句:路由的名称(如['as' => 'home' ...]不会使/home成为可访问的URI,它只是为了在您的应用程序中更好地引用,例如URL::route('home')。所以您可以引用名称,不管实际路线是什么样子的。 -
您还没有定义主路由,如果您无法访问已定义的路由,那么您的公共目录配置肯定有问题。我猜默认访问是localhost/public/about
-
.htaccess 文件在我的公共目录中,但重写模块被禁用。 Quasdunk,您的评论让我意识到了这一点,所以如果您想添加答案,我会将其标记为已接受。
-
感谢大家的 cmets / 回答。
标签: php apache laravel laravel-4