【问题标题】:Remove public folder in Laravel 5 using AWS EC2 or Beanstalk使用 AWS EC2 或 Beanstalk 删除 Laravel 5 中的公用文件夹
【发布时间】:2018-11-13 19:26:57
【问题描述】:

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

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

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

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

compiled.php 第 7610 行中的 Laravel NotFoundHttpException。

我不想将 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 的任何其他方式?

【问题讨论】:

  • 您将域指向哪个目录?
  • 它指向公共文件夹。在配置 app.php 我有 'url' => env('APP_URL', 'example.com'),
  • 在这种情况下,我会尝试运行php artisan route:clear &amp;&amp; php artisan clear-compiled &amp;&amp; php artisan optimize &amp;&amp; php artisan cache:clear
  • 试过了,仍然必须去example.com/public/app,但在本地主机我可以直接去example.com/app

标签: laravel laravel-5


【解决方案1】:

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

猜你喜欢
  • 2014-12-04
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 2013-10-19
  • 2015-10-04
  • 2014-03-24
  • 2015-08-08
  • 2018-05-01
相关资源
最近更新 更多