我注意到有些人有类似的问题,但问题与他们的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
条件。但是删除它可能会产生意想不到的副作用。