我正在使用Laravel 5.1
我最近在共享主机上传了我的项目。但是当我浏览http://siteAddress.com/local/.env
时,我的.env文件是可见的。
有没有办法隐藏此文件或重定向人员,如果他们想要浏览具有文件夹视图的网站?
最后,我隐藏.env
并禁用名为local
的文件夹的索引视图。我在文件夹.htaccess
中创建了一个local
。
这是.htaccess
的代码
# Disable index view
Options -Indexes
# Hide a specific file
<Files .env>
Order allow,deny
Deny from all
</Files>
请创建一个.htaccess
文件,其中包含.env文件并编写如下所示的代码:
# STRONG HTACCESS PROTECTION
<Files ~ "^.*\.([Ee][Nn][Vv])">
order allow,deny
deny from all
satisfy all
</Files>
然后尝试从url中获取.env文件,它将无法使用并在其中显示代码。
如果你想从github中删除它。
请在同一目录中创建新文件.gitignore。
并添加行
.env
.env
文件位于public
文件夹之外,因此如果服务器配置为将public
文件夹视为文档根目录,则不应从外部世界看到它。
从最好的答案:
请记住,一旦您的服务器配置为将公用文件夹视为文档根目录,没有人可以查看该文件夹下一级的文件,这意味着.env文件已经受到保护,以及整个应用程序。 - 这就是公共文件夹存在的原因,安全性。 - 如果将文档根目录设置为公用文件夹,则可以在浏览器中看到的唯一目录是存在的文件夹,如样式和脚本。
https://laracasts.com/discuss/channels/general-discussion/how-do-you-protect-env-file-from-public
检查主机上的文件夹结构,确保public
文件夹是文档根目录。
您可以在.htaccess文件中添加以下代码以禁用目录列表并限制.env文件的访问:
# Disable Directory listing
Options -Indexes
# block files which needs to be hidden, specify .example extension of the file
<Files ~ "\.(env|json|config.js|md|gitignore|gitattributes|lock)$">
Order allow,deny
Deny from all
</Files>