【发布时间】:2019-10-30 13:52:29
【问题描述】:
我正在 Heroku 上设置我的 Laravel API。一切似乎都运行良好,我可以访问该站点并查看 Laravel 公共页面。但是当我尝试访问我的 API 路由(注册、登录等)时,它会返回 404 错误。
这些路由在我自己创建的虚拟主机上运行良好,但是一旦我将它上传到 Heroku,除了“/”之外的所有路由都返回 404。我已经检查过“index.php/”是否可以工作,但是仍然返回 404。
公共/htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_URI} 1^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
过程文件
web: vendor/bin/heroku-php-apache2 public/
路由/api.php
$api = app('Dingo\Api\Routing\Router');
$api->version("v1", function ($api) {
$api->get("/", function () {
return response()->json([
'status' => 'success'
], 200);
});
$api->post("/signup", "MusicShare\Http\Controllers\AuthController@signup");
})
Heroku 日志
2019-06-16T23:04:37.778061+00:00 app[web.1]: 10.35.223.16 - - [16/Jun/2019:23:04:37 +0000] "GET /index.php/routes HTTP/1.1" 200 47843 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36
我的 Heroku 日志不返回错误。一切都显示状态代码为 200,但如果我尝试访问“/api/signup”或“/signup”或“/index.php/signup”,我仍然会在 Chrome 中得到 404
【问题讨论】: