私は次のように 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.comにhttps://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 アドレスで複数のドメインを処理できます。