我正在使用Laravel 5.1
我最近在共享主机上传了我的项目。但当我浏览http://siteAddress.com/local/.env
时,我的.env文件可见。
有没有办法隐藏此文件或重定向用户,如果他们想要浏览具有文件夹视图的网站?
答案 0 :(得分:18)
最后,我隐藏.env
并禁用名为local
的文件夹的索引视图。我在文件夹.htaccess
中创建了local
。
以下是.htaccess
# Disable index view
Options -Indexes
# Hide a specific file
<Files .env>
Order allow,deny
Deny from all
</Files>
答案 1 :(得分:10)
请创建一个.htaccess
文件,其中包含.env文件并编写如下所示的代码:
# STRONG HTACCESS PROTECTION
<Files ~ "^.*\.([Ee][Nn][Vv])">
order allow,deny
deny from all
satisfy all
</Files>
然后尝试从url点击.env文件,它将无法使用并显示内部代码。
如果你想从github中删除它。
请在同一目录中创建新文件.gitignore。
并添加行
.env
答案 2 :(得分:2)
.env
文件位于public
文件夹之外,因此如果服务器配置为将public
文件夹视为文档根目录,则该文件不应在外部可见。
从最佳答案:
请记住,一旦您的服务器配置为查看公用文件夹 作为文档根目录,没有人可以查看一个级别的文件 该文件夹,表示您的.env文件已受到保护,如 你的整个申请。 - 这就是公共文件夹的原因 安全。 - 你可以看到的唯一目录 浏览器如果将文档根目录设置为公用文件夹则为 那里的文件夹,如样式和脚本。
https://laracasts.com/discuss/channels/general-discussion/how-do-you-protect-env-file-from-public
检查主机上的文件夹结构,确保public
文件夹是文档根目录。
答案 3 :(得分:0)
您可以在.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>