【问题标题】:"Not Found" error for all other routes except for / using laravel 5.1 on a EC2 instance AWS除/在 EC2 实例 AWS 上使用 laravel 5.1 之外的所有其他路由的“未找到”错误
【发布时间】:2016-03-10 20:04:55
【问题描述】:

尝试在 EC2 (aws) 上建立一个 laravel 5.1 项目。到目前为止,我已经安装了 LAMP 堆栈(php 5.6)和作曲家。一切似乎都运行良好。甚至能够为 laravel 应用程序运行迁移,但是每当我尝试去除“/”之外的任何路线时,我都会得到一个

Not Found

The requested URL /public/pricing was not found on this server.
Apache/2.4.7 (Ubuntu) Server at compute.amazonaws.com   Port 80

错误。

不知道发生了什么。它使用 mamp 在我的本地主机上运行良好。

【问题讨论】:

  • 听起来像是mod_rewrite 问题。你检查过你的 .htaccess 文件了吗?
  • @kevinabraham:你找到解决方案了吗?我在 linode 服务器上托管并面临同样的问题。如果您找到了解决方案,请帮助...提前致谢
  • @JTheDev 我可以看到您在下面的评论中找到了解决方案。 ??????

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


【解决方案1】:

所以听起来/看起来您缺少 htaccess 文件: http://laravel.com/docs/5.1#configuration

如果您导航到 /public/index.php?pricing,该网页现在很可能会显示出来。

您需要配置 .htaccess 文件以将请求传递给 index.php 以处理路由。

【讨论】:

  • 感谢您的回复。我已经使用 laravel 配置设置了 htaccess 文件并重新启动了 apache。出于某种原因,没有任何效果。我关闭了与服务器的连接并重新启动,一切都开始工作了。不知道为什么。
【解决方案2】:

需要考虑的三件事; 1)您应该将文档根目录设置为公共而不是 Laravel 目录。简单来说,用户应该可以访问 Laravel 目录。

2) 检查您的 Apache 查找文件或 .htaccess 以允许覆盖

AllowOverride All

3) 确保 mode_rewrite 已启用

sudo a2enmod rewrite

【讨论】:

  • 感谢您的回复。我已经启用了重写并完成了 AllowOverride 并重新启动了 apache。出于某种原因,没有任何效果。我关闭了与服务器的连接并重新启动,一切都开始工作了。不知道为什么。
  • 是的。我完成了解决问题的所有步骤。也许由于某种原因 apache 不会重新启动并重新启动服务器,请重置 apache。
  • 我想,我找到了解决方案。对我来说,这是 AllowOverride All 的问题。
【解决方案3】:

我启用了模组重写

设置 htaccess

允许全部覆盖

它没有改变任何东西。然后我终止了与服务器的连接并重新启动,一切正常。不完全确定为什么这会奏效,但幸运的是它确实奏效了。

【讨论】:

    猜你喜欢
    • 2019-07-18
    • 2018-08-20
    • 2015-10-12
    • 1970-01-01
    • 2019-10-03
    • 2014-05-30
    • 1970-01-01
    • 2018-09-29
    • 2019-05-20
    相关资源
    最近更新 更多