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'”

SQLSTATE [42S22]:找不到列:1054 未知列 laravel 5.1

laravel 设置好了路由为啥找不到控制器

Laravel 找不到路由,除非路由被命名