我希望能够将所有访问者重定向到网站&其子域名为HTTPS,如下所示:
其他重定向:
重定向应该是可缓存的HTTP 301重定向。使用的配置是Apache 2.4.10 + mod-spdy,具有Strict-Transport-Security(加上通配符SSL证书)。
目前在.htaccess中使用以下内容:
RewriteCond %{SERVER_PORT} !^443
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^ "https://www.example.com%{REQUEST_URI}" [R=301,L]
RewriteCond %{SERVER_PORT} !^443
RewriteCond %{HTTP_HOST} ^sub\.example\.com$
RewriteRule ^ "https://sub.example.com%{REQUEST_URI}" [R=301,L]
我一直在使用spdycheck.org对此进行测试,它适用于主域名,子域名我收到以下消息:
允许HTTP流量
此网站仍可通过HTTP访问。 HTTP 没有提供任何广泛实施的使用其他机制 像SPDY这样的协议。仅使用NPN扩展通过SSL / TLS进行流量传输 可以使用SPDY进行优化。通过允许HTTP流量,这个网站是 甚至不提供支持SPDY的浏览器选择使用SPDY。如果 可能,这个网站应该将所有http://重定向到https://, 理想情况下,使用可缓存的HTTP 301重定向。
实现这一目标的好方法是什么?如果需要,我也可以修改httpd.conf。
答案 0 :(得分:0)
如果您在httpd.conf中执行此操作,请输入以下内容:
<VirtualHost _default_:80>
RewriteEngine On
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NE,L,R=301]
</VirtualHost>
在所有虚拟主机之后,确保您的其他虚拟主机仅为端口443。这将重定向全局http vhost,它将每个页面单独重定向到HTTPS并提供301重定向。