皆さんは、ご自身のホームページのURLをどのように書いていますか?
名刺やチラシ、パンフレットなど、あらゆるところにURLを書くことがあると思いますが、URLはどのような表記で書いているでしょうか。
弊社のドメイン(y-com.info)を例に出すと、
- http://y-com.info
- http://www.y-com.info
などの書き方があります。
いずれの書き方でもトップページへアクセスできます。
このように、同じURLでも違う書き方が複数存在し、そのままではユーザのアクセスの問題や、解析データの問題、また、重複コンテンツとみなされることによるSEOへの影響もありますので、これらのURLの表記を統一する必要があります。
今回は、URLを統一するためのURL正規化方法を紹介します。
URLの表記の違いについて
同じトップページに対して、表記の違うURLの例を紹介します。
wwwのありなし
http://y-com.info
http://www.y-com.info
index.htmlのありなし
http://y-com.info
http://y-com.info/index.html
httpsとhttp
https://y-com.info
http://y-com.info
このように、それぞれ2パターンの3種類の組み合わせがあるので、合計8種類のURLの表記があります。
URLが8種類にも分散してしまうのは問題です、どのURLでアクセスしても必ず一つのURLにアクセスされるように改善してみましょう。
URLの正規化による統一
あなたが理想としているURLに統一してみましょう。
- URLは簡単な方がいいので、wwwは無しにしましょう
- URLは簡単な方がいいので、index.htmlは無しにしましょう
- SSL対応しておく必要があるので、httpsで始まるURLにしましょう
つまり、弊社のドメインでは、
https://y-com.info
これが理想的なトップページのURLとなります。
.htaccessによる正規化処理
では、実際にこれらのURLを統一してみます。
先ほど書いたように、実際には8種類のURLが存在しそれぞれでアクセスできるのですが、どのアドレスでアクセスされたとしても
https://y-com.info
に誘導(リダイレクトする)ということをします。
ホームページのトップページのファイル(index.html)が置かれている場所に、.htaccessというファイルを用意します。
既に存在する場合はそこへ追記、無い場合はファイルを作りましょう。
Windowsでは「.」から始まるファイルが作れないので、FTPソフトの上で作るとよいでしょう。
次のコードを作成した.htaccessに追記してください。
RewriteEngine on
# httpからhttpsへのリダイレクト
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# wwwを取り除く
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
# index.htmlやindex.phpを取り除く
RewriteRule ^index\.(html|php)$ / [R=301,L]
書かれている内容の説明は省略しますが、これをそのままコピペして使ってもらうと以下のルールでURLの正規化ができるようになっています。
- https://から始まる
- wwwは無し
- index.htmlは無し
設定が終わったら、実際にいろいろなURLでアクセスしてみて、正規のURLにリダイレクトされるか試してみましょう。
どのようなURLでも、最終的には上記のルールでアクセスされるようになっています。
トップページと同じフォルダに置いている場合は、サブページにも同じルールが適用されるので、このファイルを1つ置くだけでサイト全体のURLを正規化することができます。
これまでやっていなかった方は、ぜひやってみましょう。
[RelService] [Service]