2016-09-17 10 views
0

これは他の投稿(https://stackoverflow.com/a/25196859/730378https://stackoverflow.com/a/20915595/730378)で回答されていますが、私はそれらを試してみましたが、どちらも私のために働いていません。サブドメインではなく、ルートドメインのみをhttpsにリダイレクト

以下のhtaccessコードを使用すると、ルートドメインとエイリアスのhttpsにリダイレクトされますが、サブドメインはリダイレクトを継続し、サブドメインに対してもhttpsを使用します。

#### 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !=subdomain.rootdomain.ca [NC,OR] 
RewriteCond %{HTTP_HOST} ^(www.)?rootdomain.ca$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^(www.)?rootdomain.biz$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^(www.)?rootdomain.co$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^(www.)?domainalias.biz$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^(www.)?domainalias.ca$ [NC] 
RewriteRule (.*) https://rootdomain.ca/$1 [R=301,L] 
+1

このルールはそのまま適用されます。ほとんどの場合、サブドメインは 'R = 301'の初期の実験からリダイレクトされます。 * ['R = 301']でテストしないでください(http://stackoverflow.com/a/9204355/1741542)! –

+0

@PanamaJackはすでに述べたように、最初の 'RewriteCond'は必要ありません。 –

答えて

1

あなたが最初の条件に!^の代わり!=を使用する必要がありますが、技術的にはあなたも、最初のものを必要としません。 のルートドメインまたはエイリアスと一致する場合にのみ、ルートにリダイレクトされます。これらすべての条件を統合し、このようにコードを試してください。あなたのキャッシュをクリアし、この試してみてください。

RewriteEngine on 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(www\.)?(rootdomain|domainalias)\.(ca|biz|co)$ [NC] 
RewriteRule (.*) https://rootdomain.ca/$1 [R=301,L] 
+0

別のコンピュータで作業しています。私は履歴をクリアしてこれをキャッシュしても何度でも有効になりました。 – spiderling

+0

@Olaf - R = 301でもう一度テストしないことに注意してください。 – spiderling

関連する問題