カテゴリー︎: 【.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)も「なし」に統一しています。
# さくらサーバーで 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を設定する方法