2016-08-19 14 views
3

https://example.comで自分のサイトにアクセスすると、ブラウザはERR_CONNECTION_REFUSEDで応答します。すべての作業以下のことに注意してください:HTTPS以外のHTTPSをHTTPSにリダイレクトする方法www .htaccess?

にリダイレクト?

は私が動作していないよう次のことを試してみた:

// .htaccess 

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} !^www\. [NC]  
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301] 

答えて

1

あなたのルールは、2つの条件が、あなたORAND操作を使用しています。

あなたはwwwhttpsの両方を実施するため、このルールを使用することができます。

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://www.%1%{REQUEST_URI} [R=301,L,NE] 

は、試験前にブラウザのキャッシュをクリアすることを確認します。


EDIT:ちょうどhttps://example.com to https://www.example.comのための以下のコメントを1としてこのルールを使用することができますリダイレクト:そのままお持ちのルールが動作するはず

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 
+0

私はこれを試しましたが、httpd.confの既存の規則と競合していると思います。リクエストが 'https:// example.com'の場合にのみ、wwwにリダイレクトする方法はありますか? – henrywright

+0

元のURLが「http:// www.example.com」の場合は、「https:// www.example.com」にする必要はありません。あなたはhttpd.confでもこのルールを使うことができます。ちょうどApacheを再起動し、毎回ブラウザのキャッシュをクリアすることを覚えておいてください(またはcurlコマンドラインを使ってテストしてください)。 – anubhava

+0

アドバイス@anubhavaありがとうございます。 'http:// www.example.com'はすでに' https:// www.example.com'にリダイレクトされています。処理を必要とするのは 'https:// example.com'から' https:// www.example.com'までです。 – henrywright

1

を。

ERR_CONNECTION_REFUSEDから、私はApacheがhttps(443)ポートでリッスンしていないと推測します。

http://example.comからhttps://www.example.comへのリダイレクトであっても、www.example.comを通じてhttpsを許可し、example.com経由でブロックするようなファイアウォール設定のような、ネットワーク関連の問題がある可能性があります。サーバープロバイダに確認する必要があります。

+0

ありがとう、知っておくと便利です。私が確認しておきます、チェックします! – henrywright

関連する問題