首页 > 解决方案 > 未找到 apache2 ubuntu 服务器 404 上的 Laravel api

问题描述

我有一个本地创建的 laravel RESTFUL API,并使用 git 将它部署在我的 ec2 ubuntu 服务器上。

我已经将它设置为我的主要网站../var/www/api.myapp.com/public_html/myapp-be对于它的配置,我有这个/etc/apache2/sites-available/api.myapp.com.conf.

我发现的几乎所有关于在 apache2 ubuntu 服务器上部署 laravel 的博客和教程都几乎相同,并且我都遵循了它们。但是,当我在邮递员上测试我的 API 时,https://api.myapp.com/api/somefunctionhere它会说404 not found, The requested URL was not found on this server. Apache/2.4.29 (Ubuntu) Server at api.myapp.com port 443.
但是当我在邮递员上测试我的本地 api 时,它工作正常,因此,我确认我的 laravel 没有任何问题。

我的配置看起来像这样

<VirtualHost *:80>
    <Directory /var/www/api.myapp.com/public_html/myapp-be/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
    </Directory>
    
    ServerAdmin developer@myapp.com
    ServerName api.myapp.com
    Redirect permanent / https://api.myapp.com/
    ServerAlias api.myapp.com
    DocumentRoot /var/www/api.myapp.com/public_html/myapp-be/public
    
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/error.log combined

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =api.myapp.com [OR]
    RewriteCond %{SERVER_NAME} =api.myapp.com
    RewriteRule ^ https://${SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
    <Directory /var/www/api.myapp.com/public_html/myapp-be/public/>
        AllowOverride All
    </Directory>
    
    ServerName api.myapp.com
    DocumentRoot /var/www/api.myapp.com/public_html/myapp-be/public
</VirtualHost>

这里有没有我错过的地方?显然我错过了一个地方,但我已经找了将近 3 个小时,但仍然无法工作。有什么想法吗?谢谢!

更新:我尝试将 /public 添加到前缀并且它起作用了,我什至不知道它为什么起作用 - https://api.myapp.com/public/api/somefunctionhere

标签: laravelamazon-web-servicesamazon-ec2apache2virtualhost

解决方案


推荐阅读