我有类似的.htaccess规则:
# Redirect to HTTPs.
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
基本上它会检查我是否使用HTTP而不是HTTPS。如果我这样做,那么它将重定向到HTTPS版本。它完美地运作。但我有一个小问题。
当我在开发模式( localhost )中运行时,我使用端口8000,然后我需要删除此规则,因为它会生成错误(如 ERR_SSL_PROTOCOL_ERROR )。我只需要使用HTTP打开这个页面,通常,在这种情况下我不需要HTTPS。
答案 0 :(得分:1)
在完成这篇文章之前,我找到了这个案例的解决方案。基本上我改为这条规则:
# Redirect to HTTPs.
RewriteCond %{SERVER_PORT} =80
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
它会检查我是否通过端口80访问,然后它将重定向到HTTPS版本。