https:// に www apache2 でリダイレクトする

https:// に www apache2 でリダイレクトする

私は次のように apache2 ホスト .conf ファイルを使用して、すべての http:// リクエストを https:// にリダイレクトしています。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect / https://www.example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    #more details here
</VirtualHost>

これは正常に動作しており、すべてのリクエストをhttps://にリダイレクトします。

今、私は非wwwリクエストをwwwにリダイレクトしたいのです(つまりhttps://example.comhttps://www.example.com)。上記の 443 ブロックの前と後に以下の行を追加しようとしましたが、うまくいきませんでした :(

<VirtualHost *:443>
    ServerName example.com
    Redirect / https://www.example.com/
</VirtualHost>

.htaccess なしでこれを有効にする方法をご存知ですか。

助けてください..

答え1

既存の vhost にリダイレクトを追加したいとします*:443。次のようにすれば実行できます。

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

それを他のRewriteRuleセクションの前に置きます。

答え2

あなたが持っているものはすでに正しいです。

*:443そしてで定義する必要がありますNameVirtualHost

# more details hereすでにすべての SSL 設定が完了しているこの構成を使用します。

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName www.example.com
    # more details here
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    Redirect / https://www.example.com/
    # more details here
</VirtualHost>

SSL証明書の詳細が必要になりますそれぞれ VirtualHost同じコンテナであっても、同じです。

お願いしますしない追加の IPv4 アドレスを使用する - このユースケースでは追加の IP アドレスを使用する必要はありません。HTTP/1.1 は、SSL を含め、1 つの IP アドレスで複数のドメインを処理できます。

関連情報