我有一台Mac Mini Server,运行macOS Sierra(10.12.2)和macOS Server(5.2)。 这是一个内置的Apache服务器,它被设置为监听端口80和443。 文档可以通过HTTP和HTTPS访问。
但是,只要在.htaccess文件中使用SSLRequireSSL指令,就会停止工作。 在浏览器中,当访问https://www.example.com/path/document ,我看到以下内容:
被禁止
您无权访问此服务器上的/path/文档。
Apache服务器在www.example.com端口80
请注意,错误消息提到端口80,即使它通过HTTPS /端口443服务(我用curl检查了这一点 – 所以浏览器redirect不是一个问题在这里)。 但这可能与问题的根源有关。
在Apache错误日志中,显示以下内容:
[Sun Jan 29 16:38:07.674342 2017] [ssl:error] [pid 82204] [client 127.0.0.1:50195] AH02219:访问/ Users / Glorfindel / wwwroot / path / document失败,原因:需要SSL连接
.htaccess文件中的其他指令也可以工作(例如Options -Indexes )。
您没有访问https。
您显示的错误清楚地说:“Apache服务器在www.example.com端口80”
确保你真的访问https,确保没有redirect发送你到http(例如使用你的浏览器Web控制台)。
根据您的意见,这里是一个提示,看看发生了什么:
curl -I https://www.example.com/path/document
这将向您显示从您的服务器的未caching的答案,如果您有访问或没有,和/或如果您获得redirect到http。