首页 > 解决方案 > 使用 AWS EC2 或 Beanstalk 删除 Laravel 5 中的公用文件夹

问题描述

在本地环境中,我可以导航到 domain.com/app,但在 AWS 中,它只有在我使用 domain.com/public/app 时才有效。我尝试了多种方法来解决没有公用文件夹的问题

我已经尝试了两种不同的方法:

添加了 .htaccess mod_rewrite 但它在下面提供了一个错误。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Laravel NotFoundHttpException 在compiled.php 7610 行。

我不想将 server.php 重命名为 index.php,因为这不是最安全的方法。

在 /public/.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]


</IfModule>

在不使用 Homestead的情况下获得 http 到 https 的任何其他方式?

标签: laravellaravel-5

解决方案


在您的虚拟主机文件中,将 documentroot 指向 laravel 的公共文件夹


推荐阅读