サーバーに関係する語句としてよくでてくる「.htaccess(ドット・エイチ・ティ・アクセス)」。
SEOにも関連する重要なファイルですが、一体何をしているのかわかりにくいのも事実。
基本的にはサーバー上で以下の4つを担当していることが多いです。
- リダイレクト設定
- 閲覧時にID・パスワードを要求するBasic認証
- IPアドレスによるアクセス制限
- エラーページの制御
この記事では、.htaccessが「できること」と、どう設定したらいいのかをまとめました。
.htaccessはWEBサーバーの設定ファイル
.htaccessはApache(アパッチ)を利用しているWEBサーバー上で、サーバーの動きを一部制御することができるファイルです。
ファイル名は必ず「.(ドット)」で始める必要があります。
.htaccessでできる基本の3つ
リダイレクト設定
SEO関連の設定をしているときに.htaccessを使うケースで一番多いのが「リダイレクト設定」でしょう。
サイトを移転したとき、URLを変更したときなどに使われます。
URLのwwwあり/なしを統一したいとき
ドメイン(例えば「domain.com」)を契約すると、基本的にはwww.domain.com
とdomain.com
の両方が使えるようになります。
サイトへのアクセスをwwwがあるURL、もしくはwwwがないURLのどちらかに統一したい場合に活躍するのが.htaccessです。
設定自体は簡単で、下記のコードを追記すればOKです。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
3行目にあるexample.com
の部分は、実際のサイトのURLに合わせて書き換えてください。
URLをhttp/httpsで統一したいとき
サイト閲覧時の通信が暗号化されていない場合にURLはhttp://
から始まり、暗号化されている場合はhttps://
から始まります。
暗号化の設定をしたのにhttp://
のURLでアクセスしてくるユーザーがいる場合は、.htaccessでURLをhttps://
に統一することが必要です。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
サイトを引っ越したとき
サイトを引っ越しした際には、古いURLに来てしまったユーザーを新URLへ自動で遷移させるためにリダイレクト設定を行いましょう。
引っ越しの状況によっては細かい設定が必要になることがありますが、今回は引っ越し元と引越し先でドメインが変わるだけでURLの構成は同じ場合をご紹介します。
なお、引っ越しであればSEOの評価は引き継ぎたいケースがほとんどだと思うので、引き継ぎのためにステータスコードを「301リダイレクト」で設定する形式です。
Redirect permanent / https://new-domain.com/
後半のhttps://new-domain.com/
部分は引越し先サイトのTOPページURLを入れてください。
閲覧時にID・パスワードを要求するBasic認証
何か理由があってWEBサイトを完全公開したくないときは、「Basic認証」と呼ばれる閲覧時にポップアップを表示してID・パスワードを要求するように設定できます。
もしID・パスワードが間違っている場合には「401 Unauthorized」と画面に表示されて、サイトへのアクセスがブロックされるんですね。
401 Unauthorized
アクセスしようとしたページは表示できませんでした。
Basic認証は.htaccessと合わせて.htpasswdというファイルを使って設定を行います。
設定がやや複雑になるので、別の記事で詳しくまとめますね。
IPアドレスによるアクセス制御
ID・パスワードによる制限ではなく、IPアドレスによってサイトの閲覧を制御したい場合にも.htaccessは使われます。
例えば、IPアドレス「111.222.111.222」を許可したい場合は以下の通りです。
order allow,deny
allow from all
deny from 111.222.111.222
逆に、特定のIPによるアクセスだけを許可する書き方もあります。
order deny,allow
deny from all
allow from 111.222.111.222
エラーページの制御
他に.htaccessがよく使われるものとしては「エラーページの制御」があります。
もしサイト訪問者が閲覧しようとしたページが存在しない場合、サーバー側で用意されているエラーページが表示されるのですが、任意で特定のページに変更できるものです。
よく表示されるエラーは下記の4種類。
- 401 認証エラー
- 403 権限エラー
- 404 ページが存在しないエラー
- 500 実行エラー
それぞれを任意のページに設定するには、.htaccessに下記のように記述してください。
#エラーページの設定
ErrorDocument 401 http://www.example.jp/error/404.html
ErrorDocument 403 http://www.example.jp/error/403.html
ErrorDocument 404 http://www.example.jp/error/404.html
ErrorDocument 500 http://www.example.jp/error/500.html
401エラーが発生したときに、http://www.example.jp/error/404.html
に遷移する設定です。
他のエラーも同様に設定しています。
.htaccessの編集時の注意
.htaccess内で誤った記述をしてしまうと、サイト閲覧時に「500 Internal Server Error」が表示されてしまいます。
Internal Server Error
The server encountered an internal error or misconfiguration and was unaable to complete your request.
エラーが表示されてもサイト内のコンテンツが消えてしまうことはないので、慌てず記述エラーを探して修正してくださいね。
まとめ
どうしても動いている様子を確認しづらいのでイメージしにくい.htaccess。
実はサーバー上のアクセスを制御する際にかなり有能な働きをしています。
- リダイレクト設定
- Basic認証
- IPアドレスによるアクセス制限
- エラーページ制御
WEBサイトを運営していくときに必要になる場面はあるので、ぜひ「何ができるか」だけでも把握しておきましょう。
コメント