Ошибка 404 маршрутов API Laravel при использовании Heroku Apache - PullRequest
0 голосов
/ 17 июня 2019

Я настраиваю свой Laravel API на Heroku. Кажется, все работает нормально, я могу зайти на сайт и увидеть общедоступную страницу 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>

PROCFILE

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, но я все еще получаю 404 в Chrome, если я пытаюсь получить доступ к "/ api / signup" или "/ signup" или "/index.php/signup"

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Вы должны отредактировать конфигурационные переменные - добавили API_PREFIX и API_DOMAIN в настройки Heroku для моего сайта.

0 голосов
/ 17 июня 2019

, если вы используете сервер 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...