.htaccess:仅在通过端口80访问时应用https

时间:2016-05-02 19:34:51

标签: apache .htaccess

我有类似的.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。

1 个答案:

答案 0 :(得分:1)

在完成这篇文章之前,我找到了这个案例的解决方案。基本上我改为这条规则:

# Redirect to HTTPs.
RewriteCond %{SERVER_PORT} =80
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

它会检查我是否通过端口80访问,然后它将重定向到HTTPS版本。