.htaccess 使用htaccess强制https不适用于htpasswd的完整URL

.htaccess 使用htaccess强制https不适用于htpasswd的完整URL,.htaccess,mod-rewrite,https,apache2,.htpasswd,.htaccess,Mod Rewrite,Https,Apache2,.htpasswd,我目前正在使用htaccess强制apache2服务器上的所有http请求转到https。https已设置并正常工作。如果我只使用基本域名(例如:http://mydomain.com),但是如果我做了类似http://mydomain.com/index.php我收到一个401错误,说我没有授权。我应该提到,我的htaccess还将所有内容限制为具有htpasswd文件的授权用户 在不使用重写http->https的情况下,只要用户登录,http和https都可以使用任何url正常工作。如果他

我目前正在使用htaccess强制apache2服务器上的所有http请求转到https。https已设置并正常工作。如果我只使用基本域名(例如:
http://mydomain.com
),但是如果我做了类似
http://mydomain.com/index.php
我收到一个401错误,说我没有授权。我应该提到,我的htaccess还将所有内容限制为具有htpasswd文件的授权用户

在不使用重写http->https的情况下,只要用户登录,http和https都可以使用任何url正常工作。如果他们不是,它将要求他们登录。当我把重写放回它不要求用户登录,只是显示一个401错误页面

这是我的htaccess文件:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
AuthName "Enter Account Info... Or your computer will blow up!!!"
AuthType Basic 
AuthUserFile /<censored>/.htpasswd 
AuthGroupFile /dev/null 
require user <censored>
重新编写引擎打开
重写条件%{HTTPS}关闭
重写规则(.*)https://%{HTTP_HOST}%{REQUEST_URI}[R,L]
AuthName“输入帐户信息…否则您的计算机将爆炸!!!”
AuthType Basic
AuthUserFile/.htpasswd
AuthGroupFile/dev/null
需要用户
没有那些重写行,一切都很好。对http或https的请求将正常运行,但对基本域以外的任何内容使用重写似乎会在某个地方中断


我已经尝试了各种重写规则,我在网上找到了,所有这些规则都给出了相同的结果,对于基本url来说效果很好,而不是直接的页面链接。

我也有类似的问题,这对我来说很有效

在httpd.conf中的“虚拟主机”下,确保您同时具有以下两个功能:

ServerName域名.com

ServerAlias www.domain.com


目前,在VirtualHost*:80和VirtualHost*:443中,我已经修改了htaccess并删除了重写规则,而是使用..将其放置在php代码中的几个关键位置<代码>如果($\u服务器[“HTTPS”]!=“打开”)。。。。这种方式似乎适用于我在网站上使用的任何url,包括http和https。如果我最初使用http,它确实会强制双重登录,但目前这是可以接受的。