
さくらインターネットのサーバーにて、常時SSLを設定しております。
今回行いたいことは、
・wwwを含むURLの場合は、無しのURLにリダイレクトする。
・httpsではないページ(http)がリクエストされた場合、httpsのページにリダイレクトする。
の二点です。
さくらの方の設定は、
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
マルチドメインとして使用する(推奨)
マルチドメインを選ぶとドメイン名でアクセスしたとき、指定したフォルダを既定のフォルダとして表示します。同時にwww.が付与されたサブドメインも利用できます。
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
を設定しています。
以下に.htaccessの内容を添付致しますが、この記述では
成功点:「http://example.com」や、「example.com」へアクセス⇒「https://example.com」にリダイレクト成功
失敗点:「http://www.example.com」や、「www.example.com」へアクセス⇒「https://www.example.com」にリダイレクトされる。※httpsにはなるが、wwwを除いたURLになっていない。
となります。
sslページへのリダイレクトと、wwwの除去を同時に行うにはどう記述すればよいでしょうか?
※関係があるといけないので、一応実際の.htaccessに記述されている、basic認証の処理とhtml拡張子でphpファイルを動かす処理も書いておきます。
Action myphp-script /php.cgi AddHandler myphp-script .php .html <Files ~ "^\.(htaccess|htpassword)$"> deny from all </Files> AuthUserFile /home/example/www/.htpassword AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic order deny,allow <Files ~ (index.php|example.php)> require valid-user </Files> ########以下が該当処理######### <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{ENV:HTTPS} !^on$ RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? RewriteRule ^(.*) https://example.com/$1 [R=301,L] </IfModule>
宜しくお願い致します。

