安全 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
我使用 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