laravel 阻止访问Apache服务器中的.env文件?

weylhg0b  于 2023-05-23  发布在  Apache
关注(0)|答案(4)|浏览(177)

我是laravel的新手,我知道.env文件用于存储数据库和电子邮件凭据。但是当我打开http://servername/.env时,.env文件内容显示在浏览器中。
有没有机会保护我的数据库凭据,而不更改文件名为不可猜测的文件名?
如果我使用.htaccess来阻止文件读取,这会对laravel框架产生负面影响吗?

hmae6n7t

hmae6n7t1#

请在您的.htaccess文件中添加以下代码。它也适用于本地主机和Live服务器。

# 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>
puruo6ea

puruo6ea2#

您可能正在寻找如何阻止.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服务器,享受吧!

4ioopgfo

4ioopgfo3#

在生产领域中,应该指向laravel项目的公共文件夹,其中index.php文件是,一旦它完成,没有人可以访问.env文件。如果您正在上传项目以显示演示到客户端,请不要上传.env文件,您可以在.htaccesss文件中设置evn参数

.htaccess文件

SetEnv APP_ENV local
SetEnv APP_DEBUG true
SetEnv APP_KEY app_keyasfassafas

SetEnv DB_HOST localhost
SetEnv DB_DATABASE db_name
SetEnv DB_USERNAME root

SetEnv CACHE_DRIVER file
SetEnv SESSION_DRIVER file
SetEnv QUEUE_DRIVER sync

重要apache env_module应该被启用

zsohkypk

zsohkypk4#

在您的.htaccess中
在.htaccess的末尾通过下面的行

<Files .env>
order allow,deny
Deny from all
</Files>

Laravel .htaccess文件
选项-多视图-索引

RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

<Files .env>    <----------------at the end of .htaccess file
order allow,deny
Deny from all
</Files>

相关问题