本地SSL连接导致redirect循环(在Ubuntu更新之后)

在最近的Ubuntu更新之后,我的本地网站不再通过SSL提供网页服务。 例如,我的.htaccess文件尝试确保/login始终通过HTTPS提供:

RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} /sign-in RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,R=301] 

但是,当我在域site2-local上发出请求/login时,出现错误“The page is not redirecting properly”,在/var/log/apache2/error.log出现以下错误

 [Tue Jun 08 12:20:57 2010] [info] [client 127.0.1.1] Connection to child 0 established (server site1-local:443) [Tue Jun 08 12:20:57 2010] [info] Seeding PRNG with 656 bytes of entropy [Tue Jun 08 12:20:57 2010] [info] Initial (No.1) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.2) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.3) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.4) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.5) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.6) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.7) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.8) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.9) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:20:57 2010] [info] Subsequent (No.10) HTTPS request received for child 0 (server site2-local:443) [Tue Jun 08 12:21:12 2010] [info] [client 127.0.1.1] (70007)The timeout specified has expired: SSL input filter read failed. [Tue Jun 08 12:21:12 2010] [info] [client 127.0.1.1] Connection closed to child 0 with standard shutdown (server site2-local:443) 

有一个连接到site1-local(我的机器上共享证书的另一个站点),我不明白。

任何人都知道是什么造成这个问题?

我不知道是什么导致了这个问题,但我后来自己跑了一遍,发现了一个解决方法,使用一个不同的variables来检测https请求。

您可以使用%{SERVER_PORT}%{SERVER_PROTOCOL}

这也可能是一个资本化问题。 %{HTTPS}可能是“关”而不是“关”。

在我的SSL VirtualHosts中,我有SetEnv HTTPS on是解决不同的问题,但也应该解决您的问题。 需要此解决scheme的最终原因是%{HTTPS}variables未正确设置。 如果您的%{HTTPS}variables没有被设置,手动设置应该可以解决问题。

我认为当SSL未打开时HTTPS可能并不总是被设置。 所以testing端口确实是一个很好的解决scheme(%{SERVER_PORT})

让我们先确定一下,如果Apache正在侦听https端口: lsof -i:443如果您发现没有输出,那么问题是与SSL模块,而不是重写规则,特别是因为你说相同的规则正常工作之前升级。

请validation运行apache2ctl -t没有提供错误或警告