Laravel仅在某些路线上显示'index of'页面



我注意到有些人有类似的问题,但问题与他们的vhosts和文档根有关,但我网站上的大多数URL似乎都工作正常。

例如,如果我创建以下路由

Route::get('cases', function(){
dd('here');
});
Route::get('bookings', function(){
dd('there');
});

my.local/bookings工作绝对正常,但my.local/cases只是向我展示了/cases 页面的索引

我已经将我的代码回滚到它肯定可以工作的时间,但它仍然返回/cases 页面的索引

为什么拉拉维尔会随机停止某些路线的工作?

这是我到目前为止看到的内容

  • 将代码回滚到工作状态
  • 转储作曲家自动加载
  • 检查php artisan route:list以确保它存在
  • 尝试使用服务器别名以查看本地 IP 是否正常工作
  • 更改我的 PHP 版本

它只是不会给我看这一页?

有什么想法吗?!它让我发疯!

注意 -/cases/create工作正常,我的索引/页面工作正常,这似乎只是一个GET请求/cases

此行为的原因是默认的.htaccess重写规则:

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

这两个条件定义了只有在没有与 URL 匹配的实际文件或文件夹时,才应将请求转发给index.php(因此也应转发给 Laravel)。

似乎public里面有一个cases文件夹,所以Laravel不会处理对该文件夹的请求。

您可以重命名public/cases文件夹/路由或删除第一个RewriteCond条件。但是删除它可能会产生意想不到的副作用。

最新更新