0

我目前正在使用 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 工作正常,而不是直接页面链接。

4

1 回答 1

0

我有类似的问题,这对我有用。

在您的 httpd.conf 中,在虚拟主机下,确保您同时拥有:

服务器名称 domain.com

服务器别名 www.domain.com

VirtualHost *:80 和 VirtualHost *:443 中的两者

于 2013-12-02T03:43:48.827 回答