如何在 apache vhost 中使用密码保护 Laravel 站点?

Posted

技术标签:

【中文标题】如何在 apache vhost 中使用密码保护 Laravel 站点?【英文标题】:How to password protect Laravel site within apache vhost? 【发布时间】:2021-09-14 03:44:45 【问题描述】:

我正在尝试使用 Apache vhost 文件对我的 Laravel 应用程序进行密码保护。它会询问我的用户名和密码,但每次我重新加载页面时都会询问每条路线。

谁能解释一下我需要如何更改配置文件才能让网站只询问一次密码和用户名?

这是我的 vhost 文件的目录部分:

    ServerAdmin admin@mysite.com
    ServerName staging.app.mysite.ee
    ServerAlias www.staging.app.mysite.ee
    DocumentRoot /var/www/mysite/app/staging/public

    <Directory "/var/www/mysite/app/staging">
            Options +FollowSymLinks +MultiViews +Indexes
            AllowOverride All
            Order allow,deny
            Allow from all

            #AuthType Basic
            #AuthName "Restricted Area"
            #AuthUserFile /var/www/.htpasswd
            #Require valid-user
    </Directory>

【问题讨论】:

【参考方案1】:

您可以将以下代码放入项目文档根目录中的任一 .htaccess 文件中。或者您可以在 apache 配置文件中添加以下代码。

AuthName "Dialog prompt"
AuthType Basic
AuthUserFile FULL_PATH_OF_FILE_HTPASSWD
Require valid-user

.htpasswd 文件应包含用户名和密码。

Username:HASHED_PASSWORD

这将只提示一次密码,即。将在会话中设置。

【讨论】:

每次请求后仍然提示

以上是关于如何在 apache vhost 中使用密码保护 Laravel 站点?的主要内容,如果未能解决你的问题,请参考以下文章

LAMP构建-Apache用户认证(输入密码才能访问)

如何配置 apache-vhost.conf 文件以从 Java 获取会话值

如何为运行 Laravel 的 apache vhost 设置 HTTP 基本身份验证

如何在Macbook上配置Apache虚拟主机

PHP 5.2 和 PHP 5.3 在同一 Apache (Debian) 上的 vHost 中并排使用?

为啥 Apache 忽略 :80 vhost 文件而只匹配 :443 vhost 文件中的站点?