我将项目移至HOST但我可以使用地址mysite.com/.env访问.env并显示包含所有变量和安全数据的文件。 我的.env文件:
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:xxxxxxx
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=xx
DB_USERNAME=xx
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
我如何隐藏此文件?这是合乎逻辑的解决方案吗?
注意:(我将所有文件公共文件夹移动到根目录中。)
答案 0 :(得分:6)
在根目录中创建.htaccess文件并放入以下代码。
#Disable index view
options -Indexes
#hide a Specifuc File
<Files .env>
order allow,deny
Deny from all
</Files>
答案 1 :(得分:4)
我已尝试按照以下步骤在共享主机中部署 Laravel。
1 - 在 Ubuntu 操作系统中编辑 /etc/apache2/apache2.conf。请检查其他操作系统中的相应文件。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All # Changed from None to All
Require all granted
</Directory>
启用模组重写sudo a2enmod rewrite
在根目录(公共 html 文件夹)中编辑或创建 .htaccess
<Files ~ "\.(env|json|config.js|md|xml|gitignore|gitattributes|lock|editorconfig|yml|styleci.yml)$">
Order allow,deny
Deny from all
</Files>
Options -Indexes
<Files ~ "(artisan|package.json|webpack.mix.js)$">
Order allow,deny
Deny from all
</Files>
4 - 重启 Apache 服务器,sudo service apache2 restart
注意:- 前两个步骤仅在我自己的 PC 上使用。
答案 2 :(得分:2)
除公共文件夹以外的所有内容都移到更高级别,例如文件夹laravel - http://prntscr.com/bryvu7
更改文件publi_html / index.php 线
require __DIR__.'/../bootstrap/autoload.php';
到
require __DIR__.'/../laravel/bootstrap/autoload.php';
并行
$app = require_once __DIR__.'/../bootstrap/app.php';
到
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
$app->bind('path.public', function() {
return __DIR__;
});
更改文件laravel / server.php 线
require_once __DIR__.'/public/index.php';
到
require_once __DIR__.'/index.php';
答案 3 :(得分:0)
您应该将应用中的权限所有文件夹更改为741,但bootstrap和storage以及public(755)除外。
答案 4 :(得分:0)
您可能正在寻找如何阻止.env文件在apache上提供的方式,因此请阅读。
在/etc/apache2/apache.conf文件-Ubuntu上执行此操作。在该文件的这一部分之后
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
在下面添加代码
# Hide a specific file
<Files .env>
Order allow,deny
Deny from all
</Files>
然后使用sudo service apache2 restart
重新启动apache服务器,然后开始使用!
答案 5 :(得分:0)
在我以共享方式托管项目的情况下,可以访问.env文件,文件夹结构如下所示 根 | +应用 |应用程式 |配置 |数据库 |路线 |存储 | .env | ... | index.php | .htaccess | + CSS | + js
我的.env文件可通过此website.com/app/.env访问 解决方案 将所有公共内容放到一个名为public的文件夹中,并更改设置中的根文档路径[不要忘记更改index.php文件中的app.php路径] | + app | +公共
bootrap.php文件路径应类似于/../app/vendor/autload.php和/../ app / bootstrap / app.php