在具有自定义域的OpenShift中从HTTPS重定向到HTTP

时间:2014-07-26 19:25:14

标签: apache .htaccess mod-rewrite ssl openshift

我是一个拥有自定义域名的青铜帐户。我配置了一个secure子域,使用SSL证书,该证书工作正常。但是,我想在根域强制HTTP(即,没有SSL)。但是,当我浏览到https://example.com时,我将获得属于example-myuser.rhcloud.com的共享SSL证书。

如何为除secure以外的所有子域禁用HTTPS?

我的别名设置为:

Alias                 Has Certificate? Certificate Added
--------------------- ---------------- -----------------
example.com        no               -
secure.example.com yes              2014-07-26
www.example.com    no

如您所见,我有一个域(安全)配置为使用SSL证书。

我的尝试是遵循以下htaccess规则,但它们不起作用。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# disable https on the root
RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_HOST} ^example\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example\.com [NC]
RewriteRule (.*) http://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

1 个答案:

答案 0 :(得分:2)

你很接近,但SERVER_PORT是错误的方式继续使用OpenShift(see here)。

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# disable https on the root
RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteCond %{HTTP_HOST} ^example\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example\.com [NC]
RewriteRule (.*) http://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]