openshift配置http跳转https并且www域名跳转不带www域名的apache rewrite规则

不说原因直接开,需求就是搞了个https免费证书,要求所有http请求都跳转到https,并且www域名跳转到不到www的域名,比如请求www.lison.cc跳转到http://lison.cc,而请求lison.cc跳转到http://lison.cc,全站https嘛。

1.首先设置DNS. 我用的cloudflare的CDN,DNS设置看起来是这样的:

CloudFlare的DNS设置

**2.设置openshift你的application的alias。
**默认的有lisonliou-osrd.rhcloud.com,然后再添加lison.cc,www.lison.cc,这是域名绑定?不是很清楚,我就是卡在这里好几个钟头。。。

**3.设置转发规则。
**我用的apache服务器,所以只需要修改.htaccess文件,添加如下行:

1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^aixiadianying.com$ [NC]
RewriteRule ^(.*)$ https://aixiadianying.com/$1 [L,R=301]

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

第一个rewrite规则是将带www(或者其他,因为已经做了泛解析)的网址跳转到https://aixiadianying.com;

第二个rewrite是将http请求定向到https,实现全站https,就是这样。

最后为业余时间做的站露个脸:爱下电影网 – 一个可以下载电影的网站~ !

Happy Holiday~