【发布时间】: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 && php artisan clear-compiled && php artisan optimize && php artisan cache:clear -
试过了,仍然必须去example.com/public/app,但在本地主机我可以直接去example.com/app