我想重定向http://domain.com
到https://www.domain.com
。我成功重定向http
到https
这样的default-ssl.conf
文件中:
<VirtualHost domain.com:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
<VirtualHost _default_:443>
RewriteEngine on
ServerAdmin webmaster@localhost
ServerName domain.com:443
ServerAlias www.domain.com
DocumentRoot /var/www/html
</VirtualHost>
但是,当我输入不带的域时www
,会收到错误消息This site is untrusted, the certificate is only valid to <www.domain.com>
我在网络上尝试了许多建议的解决方案,但是没有用。我的环境:
更改http
(pot 80)配置:
<VirtualHost domain.com:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
为了这里面会为做一个结合检查https
和www
:
<VirtualHost domain.com:80>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)(.+) [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
</VirtualHost>
就是说,This site is untrusted, the certificate is only valid to <www.domain.com>
由于初始连接将连接到错误的证书主机名,因此您仍然可能会得到。因此,最好使用两个http
和这样调整的配置来做到这https
一点:
<VirtualHost domain.com:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName domain.com:443
ServerAlias www.domain.com
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)?(.+)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
</VirtualHost>
这个想法是,http
您只需将连接重定向到即可https
。然后在https
连接上,检查是否www
已设置并进行相应调整。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句