【问题标题】:404 Error when deploying laravel on AWS EC2在 AWS EC2 上部署 laravel 时出现 404 错误
【发布时间】:2018-05-12 05:17:32
【问题描述】:

我正在尝试在 Amazon EC2 (Linux AMI) 上部署 Laravel。我在larval目录和laravel/public目录中添加.htaccess

<IfModule mod_rewrite.c>
WriteEngine On
RewriteBase /laravel/public/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

当我浏览 http://www.mydomaine.com/laravel/public 时,laravel 第一页运行良好,但是当我浏览到像 http://www.mydomaine.com/laravel/public/login 这样的子页面时,出现 404 Not Found 错误。如何解决这个问题,感谢您的帮助!

【问题讨论】:

    标签: php .htaccess laravel amazon-web-services mod-rewrite


    【解决方案1】:

    你做错了。不要对 public 目录中的 .htaccess 文件进行任何更改,也不要将 .htaccess 添加到 Laravel 根目录。

    您需要将 Laravel 指向 public 目录才能使其工作。例如,如果您已将 Laravel 安装在 /path_to_laravel/public/ 目录中,则需要在 Apache 配置中使用这些设置:

    DocumentRoot "/path_to_laravel/public/"
    <Directory "/path_to_laravel/public/">
    

    重启 Apache 后,您的应用应该可以正常运行了。

    使用不带“laravel”和“public”的网址,例如http://www.mydomaine.com/login

    【讨论】:

    • 感谢您的回答。但是我的服务器上还有其他东西。我希望 laravel 应用程序成为我网站的子目录。
    【解决方案2】:

    按照阿列克谢所说的去做应该会奏效。 但是,如果您真的希望您的应用程序位于此特定路径 (/laravel/public/) 中,您可以在 apache conf 文件中添加一个新指令。

    添加 ServerName "localhost.app/my/path" 并重新启动您的 Apache,它应该可以工作了。

    【讨论】:

      猜你喜欢
      • 2015-01-21
      • 2019-03-31
      • 2015-07-04
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 2020-03-21
      相关资源
      最近更新 更多