如何在 Apache 上将 HTTP 重定向到 HTTPS?
How to Redirect HTTP to HTTPS on Apache?
环境:Ubuntu 使用 Apache。
正在尝试设置从 http 到 https 的自动重定向。
我试过:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile <path to your crt file>
SSLCertificateKeyFile <path to your private key file>
# ...
</VirtualHost>
和
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/ [NC,R,L]
从 mydomain.com --- 到 ---> (https://) mydomain.com
有什么想法吗?
首先根据本教程创建虚拟主机:
Apache Web server - Setting Up Virtual Hosts
其次,您可以创建一个 Let's encrypt 证书,如果您使用 certbot,它将自动配置您的 Apache 并进行重定向:
How To Secure Apache with Let's Encrypt on Ubuntu 18.04
我用这个代码
<VirtualHost *:80>
ServerName foo.com
ServerAlias www.foo.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
</VirtualHost>
确保您可以通过 HTTP 和 HTTPS 访问您的网站。还要确保 mod_rewrite 已启用,然后您可以将这些行添加到您的 .htaccess 文件中。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
环境:Ubuntu 使用 Apache。
正在尝试设置从 http 到 https 的自动重定向。
我试过:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile <path to your crt file>
SSLCertificateKeyFile <path to your private key file>
# ...
</VirtualHost>
和
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/ [NC,R,L]
从 mydomain.com --- 到 ---> (https://) mydomain.com
有什么想法吗?
首先根据本教程创建虚拟主机:
Apache Web server - Setting Up Virtual Hosts
其次,您可以创建一个 Let's encrypt 证书,如果您使用 certbot,它将自动配置您的 Apache 并进行重定向:
How To Secure Apache with Let's Encrypt on Ubuntu 18.04
我用这个代码
<VirtualHost *:80>
ServerName foo.com
ServerAlias www.foo.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
</VirtualHost>
确保您可以通过 HTTP 和 HTTPS 访问您的网站。还要确保 mod_rewrite 已启用,然后您可以将这些行添加到您的 .htaccess 文件中。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]