gpt4 book ai didi

apache - 如何仅在使用 .htaccess 启用 SSL 的情况下启用目录密码保护?

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:31 26 4
gpt4 key购买 nike

目前,我正在运行基于 SSL 和非 SSL(混合协议(protocol))的网站。 SSL 仅对登录用户或其中包含表单的页面启用。为了强制使用 SSL (HTTPS),我在需要启用 SSL 的目录中使用以下代码:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

哪个工作正常!所以,它没有问题。

但是,我网站上的一个目录是使用强制 SSL 片段进行密码保护的,如上所述,目录锁定代码如下:

AuthType Basic
AuthName '\Enter Username and Password'
AuthUserFile /ibm_server/govt_india/public_html/docs/.htpasswd
require valid-user

现在,当我尝试访问受密码保护的目录时,它要求输入用户名和密码两次。可能是因为我使用基于非 SSL 的域来访问目录,即 http://example.com/docs重定向到基于 SSL 的域 https://example.com/docs为此,它再次要求输入用户名和密码。

首先重定向到 SSL 站点然后让用户输入用户名和密码的最佳方法是什么?

最佳答案

不是 100% 确定,但我认为你不能在你的 .htaccess 中这样做,因为相同的资源不能同时可用和不可用。

使用重写条件,您可以屏蔽服务器中的最终资源,但同样,它必须是公开的和可访问的。

使用您的 apache httpd.conf 文件,您可以使用端口(80 和 443)声明 2 个不同的虚拟主机。

这是我的httpd.conf

<VirtualHost *:80>
ServerName algodiscreto.com
DocumentRoot "/var/www/algodiscreto-com/"
<Directory />
AllowOverride All
Options FollowSymLinks
Order deny, allow
Allow from all
</Directory>
</VirtualHost>


<VirtualHost *:443>
ServerName m.algodiscreto.com
DocumentRoot "/var/www/algodiscreto-com/"
<Directory />
AllowOverride All
Options FollowSymLinks
Order deny, allow
Allow from all
</Directory>
</VirtualHost>

关于apache - 如何仅在使用 .htaccess 启用 SSL 的情况下启用目录密码保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34709626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com