【发布时间】:2015-02-25 16:46:00
【问题描述】:
我希望能够将所有访问者重定向到一个网站及其子域到 HTTPS,如下所示:
- http://example.com -> https://www.example.com
- http://www.example.com -> https://www.example.com
- http://sub.example.com -> https://sub.example.com
- http://www.sub.example.com -> https://sub.example.com
- https://www.sub.example.com -> https://sub.example.com
其他重定向:
- w(或 ww、wwww 等).example.com -> https://www.example.com
- w(或 ww、wwww 等).sub.example.com -> https://sub.example.com
重定向应该是可缓存的 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。
【问题讨论】:
标签: apache .htaccess redirect ssl