Laravel 5.1 找不到路由对象
Posted
技术标签:
【中文标题】Laravel 5.1 找不到路由对象【英文标题】:Laravel 5.1 Route Object not found 【发布时间】:2015-10-27 04:05:45 【问题描述】:请帮助我,我正在使用最新版本的 xampp 开发 Laravel,不知道我的问题的原因是什么。
这条路线运行良好:
Route::get('/', function ()
return 'aa';
);
这条路线给出一个错误“找不到对象!”:
Route::get('about', function ()
return 'aaa';
);
httpd.vhosts:
<VirtualHost test.loc:80>
DocumentRoot "C:/xampp/apps/test.loc/public"
ServerName test.loc
<Directory "C:/xampp/apps/test.loc/public">
#AllowOverride All - when I use this, I get a "Access forbidden!" for all routes
Require all granted - this works for the main route, other routes give "errors".
</Directory>
/public/.htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)/$ /$1 [L,R=301
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
【问题讨论】:
【参考方案1】:我遇到了完全相同的问题,但最后这对我有用。
.....
<Directory "C:/xampp/apps/test.loc/public">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
【讨论】:
AllowOverride All 解决了我在 xampp windows 上的问题【参考方案2】:将此添加到您的 httpd.vhosts 文件中
<VirtualHost test.loc:80>
ServerName test.loc
DocumentRoot "C:/xampp/apps/test.loc/public"
<Directory "C:/xampp/apps/test.loc/public">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
【讨论】:
结果是:Error 500 服务器错误!服务器遇到内部错误,无法完成您的请求。服务器过载或 CGI 脚本出错。 服务器 500 错误是一个非常普遍的错误。你检查你的 PHP 错误日志了吗?【参考方案3】:您是否尝试过在名称前添加斜杠? 像这样:
Route::get('/about', function ()
return 'aaa';
);
【讨论】:
是的,我试过了,结果是:找不到错误对象! 你的 Apache 版本是多少? 确保您的重写模块已激活并且您的.htaccess
正在加载。还要检查/public
文件夹的权限以上是关于Laravel 5.1 找不到路由对象的主要内容,如果未能解决你的问题,请参考以下文章
laravel 5.1 表示除了 ('/') 之外的所有其他路由,使用 ec2 在在线亚马逊服务器上找不到 404 页面
Laravel 5 和 Laravel 5.1 “找不到类‘模型名称’”,有更好的解决方案吗?
在 Laravel 5.1 中获取“找不到类 'app\Http\Controllers\Controller'”