さくらのレンタルサーバで、ドメインのwwwを「あり」か「なし」にする設定方法

カテゴリー︎: 【.htaccess】・【レンタルサーバー】

まず、管理しているwebサイトのURLについて

下記の3つの項目の設定は済ましておいた方が良いです。

(1)wwwあり wwwなしのどちらかで、統一する

(2)URLのあとにindex.html(php)のあり・なしを設定する

(3)http を https にSSL化する

※ちなみに当サイトは、事情によりSSL化はできていません。。。

wwwあり

wwwなし

どちらが良いかというと

意見が分かれますが、どちらでも良いです。

好みの問題ですね。筆者は wwwなし派です。

もし、wwwあり wwwなしが統一されていないと

SEO観点では、GoogleにURLが異なると別ページとして認識されてしまうので、SEOの評価が分散されてしまいます。

なのでURLが統一されていないと、下記の例のように、URLが分散されている状態となります。

ドメイン名:hoge.com のサンプルです。

URLが統一されていない例として
下記のURL全部にアクセスが可能になり、SEOの評価が分散されてしまいます。

http://hoge.com
http://hoge.com/index.html(index.php)
https://hoge.com → 今回はこの形に統一する
https://hoge.com/index.html(index.php)
http://www.hoge.com
https://www.hoge.com
http://www.hoge.com/index.html(index.php)
https://www.hoge.com/index.html(index.php)

サイトのトップページを表示したいのに、こんなに複数のURLでアクセスができてしまうと、Googleのクローラーは、どのURLを登録してよいのか悩んでしまいます。

つまり、URLを1つに統一しておけば、ユーザーにもGoogleにもやさしい。
そして、何よりもわかりやすいということです。

今回は www なしに統一します。
上記の分散されたURLにアクセスされても、1つのURLにリダイレクトされるのでスッキリしますね!
URL統一後のリダイレクト先のURL

https://hoge.com 

このようにURLを1つに統一することを「URLの正規化」と言います。

このURLの正規化は.htaccess (エイチティアクセス)に、ごにょごにょと、おまじないを記述すれば実現できます。

index.html(index.php)も「なし」に統一しています。

.htaccess

# さくらサーバーで www「なし」に統一する
RewriteEngine on
# wwwなし
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# httpでアクセスされたら httpsへリダイレクトする
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# index.html(php)なしに統一する
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]

上記の .htaccessをサーバにアップロードしたら
.htaccessパーミッションは644 or 604に設定して
先ほどのURLにアクセスしてみてください。

http://hoge.com
http://hoge.com/index.html(index.php)
https://hoge.com/index.html(index.php)
http://www.hoge.com
https://www.hoge.com
http://www.hoge.com/index.html(index.php)
https://www.hoge.com/index.html(index.php)

アクセスした結果
こちらに、全てリダイレクトされたら成功です!

https://hoge.com

さくらサーバーで www「あり」に統一する場合は
この、おまじないを記述してください。

# さくらサーバーで www「あり」に統一する
RewriteEngine on
# wwwありの場合
RewriteCond %{HTTP_HOST} ^(hoge.com)(:80)? [NC] 
RewriteRule (.*) http://www.hoge.com%{REQUEST_URI} [R=301,L]

# httpでアクセスされたら httpsへリダイレクト
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# index.html(php)なしに統一
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]

www「あり」に統一するした場合の
リダイレクト先のURLはこうなっているはずです。

https://www.hoge.com 

いかがでしょうか
これで、あなたのwebサイトはユーザーにもGoogleにも、やさしくなりました!

ちなみに
SSLの話ですが、筆者はさくらのレンタルサーバのSSL無料サービスの無料SSL証明書のLet’s Encryptを利用しています。

SSLを無料で設定する方法はこちらをご覧ください

さくらのレンタルサーバで、無料SSL証明書のLet’s Encryptを設定する方法

PAGE TOP