我目前正在使用 htaccess 强制我的 apache2 服务器上的所有 http 请求转到 https。https已设置并正常工作。如果我只使用基本域名(例如:),则 htaccess 重写正在工作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>
没有那些重写行,一切正常。对 http 或 https 的请求将正常运行,但对基域以外的任何内容使用重写似乎在某处中断。
我尝试了我在网上找到的各种重写规则,都给出了相同的结果,对于基本 url 工作正常,而不是直接页面链接。