【问题标题】:Error 404 even though routes exist - AWS, Laravel即使存在路由,也会出现错误 404 - AWS,Laravel
【发布时间】:2020-06-18 18:41:58
【问题描述】:

我刚刚在 AWS EC2 上创建了一个新实例。我有一个现有的 laravel 项目,将其推送到 github 上并将其安装在我的新实例上。还安装了composer、php、mysql、apache。当我点击public url 时,laravel 将我重定向到public/auth/login。在我的本地主机上一切都很好,但在这里它给了我一个错误 404 - Not Found The requested URL /auth/login was not found on this server.。我之前在 AWS 中安装了 laravel 项目,但从未遇到过这样的错误。可能出了什么问题?

【问题讨论】:

  • 所以你的意思是你的网址是http://yourdomain.com/public?如果是这种情况,您需要将 HTTP 服务器的 Document Root 更改为指向应用程序的 public 目录。您的 URL 路径中不应包含 public
  • 我把它指向了公共目录,但仍然给我一个错误。

标签: php laravel amazon-web-services amazon-ec2


【解决方案1】:

一切都来自.htaccess 文件。我添加了AllowOverride All,现在一切正常!

【讨论】:

  • 无需修改公共文件夹中的 .htaccess 文件,您只需更新您的虚拟主机配置文件(例如 /etc/apache2/site-available/00-default.conf)
  • 我遇到了同样的问题。您的 .htaccess 文件看起来如何?您在哪里添加 AllowOverride All?
【解决方案2】:

如果您使用的是 apache 服务器,请执行以下操作

  1. 转到您的 apache2.conf 文件, 例如在 ubuntu 中的路径是 /etc/apache2/apache2.conf
  2. 通过适当的修改粘贴以下代码
<Directory /var/www/the_root_of_your_laravel_project_where_index.php_exists/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

【讨论】:

    【解决方案3】:

    假设您使用的是默认 Amazon Linux,您可以编辑 /etc/httpd/conf/httpd.conf 并设置 DocumentRoot "&lt;your path to your app&gt;/public" 然后使用 sudo service httpd restart 重新启动 Apache。

    【讨论】:

    • 我正在运行 Ubuntu,但我昨天已经这样做了。问题仍未解决。所以我做了什么:cd /etc/apache2/sites-availablesudo nano 000-default.conf -> 把它改成:DocumentRoot /var/www/html/BlueDrive_1/drive/public
    猜你喜欢
    • 2014-06-22
    • 1970-01-01
    • 2017-10-20
    • 2016-06-21
    • 2014-01-25
    • 2019-12-01
    • 2017-03-08
    • 2015-03-08
    • 2022-01-25
    相关资源
    最近更新 更多