Laravel API 使用 Heroku Apache 路由 404 错误

标签 laravel apache heroku

我正在 Heroku 上设置 Laravel API。一切似乎都工作正常,我可以访问该网站并查看 Laravel 公共(public)页面。但是当我尝试访问我的 API 路由(注册、登录等)时,它返回 404 错误。

这些路由在我自己创建的虚拟主机上工作正常,但是一旦我将其上传到 Heroku,除了“/”之外的所有路由都返回 404。我已经检查过“index.php/”是否可以工作,但是仍然返回 404。

公共(public)/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

最佳答案

如果您使用的是 apache LAMP服务器尝试此代码

转到conf文件并编辑它

我正在使用//为您提交

ServerAdmin webmaster@localhost DocumentRoot /var/www/html <Directory "/var/www/html"> // here you project path Options Indexes FollowSymLinks AllowOverride All // alow all permissions Require all granted </Directory>

并重新启动服务器

对于此命令sudo service apache2 restart

然后尝试此命令进行重写
sudo a2enmod rewrite

并且您的子路线运行良好

不要忘记这个命令sudo a2enmod rewrite

关于Laravel API 使用 Heroku Apache 路由 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623361/

相关文章:

php - SQL - 组织多个发布/记录类型的最有效方法

php - 尽管方法被多次调用,但仅从数据库查询一次

mysql - Laravel 5.1 中的外键 - 无关系

apache - Xampp 在启动 Apache HTTPd 时出错

php - 在Mac OS X上从PHP调用 'Host key verification failed.'时,我不断收到 `ssh`

php - 在 Laravel 5 中使用数据库 session 存储时更改 last_activity 列的类型

linux - 连接被拒绝 : how to configure apache james for localhost

java - Play 框架部署失败 : "the application secret has not been set, and we are in prod mode. Your application is not secure"

Node.js/Socket.io 网络应用程序在本地完美且无限期地工作,但浏览器在 Heroku 上挂起

heroku - 带有Zerigo的裸域heroku