我正在尝试在 EC2(AWS linux 2) 和 apache 服务器上运行 laravel。我最近从 Namecheap 购买了一个域名
我将 laravel 安装到 var/www/html 文件夹中。
我的/etc/httpd/conf/httpd.conf有那些线,
DocumentRoot "/var/www/html/public"
<Directory "/var/www/html">
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
这是我的/etc/httpd/conf.d/vhost.conf这是
<VirtualHost *:80>
ServerName mydomain.store
ServerAlias https://www.mydomain.store
DocumentRoot /var/www/html/public
ServerAdmin mailto:[email protected]
<Directory /var/www/html>
AllowOverride All
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =mydomain.store [OR]
RewriteCond %{SERVER_NAME} =https://www.mydomain.store
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
我通过添加 SSLsudo certbot --apache
当我在浏览器中添加这样的内容时(不是真实的IP)http://18.181.183.11/我的应用程序运行良好。但是当我添加https://mydomain.store在浏览器中我得到这样的文件结构,
当我添加https://mydomain.store/public在浏览器应用程序中有效。
有谁知道为什么?
答案1
经过大量努力,我自己找到了答案。发布它认为它可能对像我这样的人将来有所帮助。
我用了让我们加密用于创建 ssl,它会自动为文件内的端口 443 (https) 创建虚拟主机vhost-le-ssl.conf
。
所以我们需要访问该文件,
sudo vi /etc/httpd/conf.d/vhost-le-ssl.conf
并将文档根目录更改为(指向公共文件夹),
DocumentRoot /var/www/html/public
然后重启apache。