安全 Laravel 网站托管

Secure Laravel website hosting

我使用 laravel 开发了一个网站,但在我的虚拟主机上我没有找到 public 目录,所以我更改了 server.php
来自

require_once __DIR__.'/public/index.php';

require_once __DIR__.'/index.php';

并且我将 public 文件夹的所有内容移动到根目录中,网站运行良好但问题是当我输入 http://mywebsite.com/.env 时,我可以显示 .env 所以我的网站没有受到保护。

问题:

如何保护我的文件和目录?

我想要的结构示例:

index.php
.htaccess
favicon.ico
img/
css/
js/
laravel/
      app/
      bootstrap/
      database/
      config/
      storage/
     .env
     server.php
     ...

我网站根目录的内容 => public 文件夹内容

laravel目录=>其他目录和文件

将所有内容放回 public 文件夹并将更改还原到 server.php。然后在您的顶级目录中添加一个 .htaccess 文件,代码如下:

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

我个人不会删除 public 文件夹。您可以添加一个 .htaccess 文件或创建一个链接到 /public 的符号链接,这两种方法都应该有效,但我通常使用符号链接。

如果您的 laravel 安装文件夹名为 "laravel" 并且您的服务器期望 "html" 是包含您的网站的文件夹,您应该这样做:

ln -s laravel/public html