Apache2仮想ホストファイルを使用して、すべての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://
にリダイレクトしますが、non-www
リクエストをwww
にリダイレクトしたいと思います。上記の<VirtualHost *:443>
の前後にこれらの行を追加しようとしましたが、成功しませんでした。
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
</VirtualHost>
仮想ホストファイルでSSLを強制しながら、www以外からwwwにリダイレクトさせるにはどうすればよいですか?
次のようなものを試してください:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/path/to/port/80/site"
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/path/to/port/443/site"
</VirtualHost>
/ path/to/port/8/siteに.htaccessファイルを作成します:
RewriteEngine On
RewriteCond %{HTTP_Host} ^example.com$ [NC,OR]
RewriteCond %{HTTP_Host} ^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
/ path/to/port/44/siteに.htaccessファイルを作成します:
RewriteEngine On
RewriteCond %{HTTP_Host} ^example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]