.htaccess
って何よ…?
“リダイレクトには.htaccess
を使いましょう”とか、“URLの統一は.htaccess
で実施しよう”とか、、
そんなん言われても、そもそも.htaccess
がわかりません…。
こんなお悩みを解決する記事。
.htaccess
がいまいちピンときていなくても安心してください。僕も最初は同じ状態でしたので。
本記事では、.htaccess
の基本を網羅しつつ、僕の経験をもとに、WordPressやブログのSEO対策で.htaccess
を最大限活かす方法についても解説します。
.htaccess
を深く解説すると割と専門的な話になってしまうので、そういった部分は避けつつ出来る限りわかりやすく簡単に解説するので参考にどうぞ。
本記事のもくじ
.htaccessとは:基本知識を初心者向けに解説
まずは、.htaccess
の基本知識について解説します。
.htaccess
とは、サーバー動作をディレクトリごとに管理するためのファイルです。
「ディレクトリ = フォルダ」なので、フォルダごとに制御するためのファイルと覚えておくといいと思います。
通常、サーバーとウェブサイトに関係はこのようになっていまして、ひとつのサーバーに複数のサイトが保管されていることが多いです。
そして、サイトは個別のフォルダに格納されているため、それぞれのフォルダに制御の指示をする(つまり、それぞれのサイトに制御の指示をする)のが.htaccess
の役割になります。
サーバー全体ではなく、ディレクトリ毎である理由は?
自分ひとりでサーバーをまるっと使っているならOKですが、レンタルサーバーの場合、ひとつのサーバーを別の利用者と共有している場合が多いです。
その場合、サーバー全体のアクセス権限はサーバー会社が管理しているため、利用者は自分が管理するサイトのディレクトリ内に.htaccess
を設置してサイトを管理することになります。
イメージとしてはこんな感じです。
.htaccess
を使いこなすことで、それぞれのサイトごとにリダイレクトやURLの統一(www有無)を設定可能なので、この機会に.htaccess
の基本を知っておきましょう。
.htaccessでできること
まずは、.htaccess
でできる、代表的な機能を紹介します。
- リダイレクト
- ID・パスワード認証
- IPアクセス制限
- URLの統一
1. リダイレクト:読者を移転先へ誘導する
リダイレクトとは、あるページに訪れた読者を別のページに自動的に遷移するための仕組みです。
ブログでは、記事のリライトをしたときに、よくリダイレクト設定するのですが、ここで変更を加えるファイルが.htaccess
になります。
» 参考:ブログ記事をリダイレクトする方法【301リダイレクトでSEO対策】
2. ID・パスワード認証:会員制サイトの構築
.htaccess
を利用することで、会員制サイトや購入特典記事など、一部にしか公開したくないサイトや記事にパスワード認証をかけることができます。
3. IPアクセス制限:特定のネットワークからアクセスを遮断する
ID・パスワードによる認証ではなく、特定のIPアドレスからのアクセスを遮断したり、逆に特定のIPアドレスのみアクセスを許可したりするのにも、.htaccess
の役目です。
これにより、社外ネットワークからの不正アクセスを防いだりすることも可能です。
4. URLの統一:wwwの有り無しを統一する
サイトのwwwの有り無しを統一しておかないと、SEO評価が分散されてしまうので非常にもったいないです。
www有り無しの統一はリダイレクトと同じ考え方ですが、https://www.sample.com
というページに訪れた読者をhttps://sample.com
に自動的に遷移させることで、SEO評価の分散を防ぐことが可能になります。
補足. まだまだある“.htaccess
”でできること
このほかにも、.htaccess
でできることはたくさんあるので、軽く紹介しておきます。
- 404エラーページの表示指定
- ファイル一覧表示の禁止設定
- ディレクトリごとにデフォルトページを変更
- index.htmlの有り無しを指定
ざっとこんな感じですね。
必要なときに調べればいいので、ここですべて覚える必要はありませんよ。
.htaccessの設定方法:WordPressの場合
WordPressでサイトを運営している場合、.htaccess
は最初から用意されています。
FTPクライアントを使い、サーバーにアクセスしたら、ドメイン直下のディレクトリに保存されているはずなので、それをダウンロードしましょう。
FTPクライアントは無料で使えるFileZilla(ファイルジラ)がおすすめです。
»【FileZilla完全攻略】初心者でも出来るFTPクライアントの使い方
.htaccessが見当たらない
ごく稀に、サーバーのルートディレクトリを探しても、.htaccess
が見当たらない場合があります。
このような場合、かなりの確率でWordPressインストール時に.htaccess
が生成されなかった可能性が高いので、新しく作りましょう。
手順①:サーバーのパーミッションを変更
FileZIllaを使う場合のパーミッション変更方法は、各ソフトの設定方法 – FileZillaが参考になります。
この手順でパーミッションの属性を[775
]に変更してください。
手順②:WordPress管理画面でパーマリンク設定
続いて、WordPressの管理画面を開き、[設定] > [パーマリンク設定] と進んだら、何も変更を加えずに [変更を保存
] をクリックすれば終了です。
もう一度、FileZillaを開いて、.htaccess
が作られているかを確かめてください。
自分で.htaccess
を作る場合
.htaccess
は自分でも作ることができます。
メモ帳など、なんでも良いのでテキストエディタを開き、下記の状態でファイルを保存しましょう。
ファイル名:.htaccess
(※拡張子はつけない)
文字コード:UTF-8(BOMなし)
改行コード:LF
.htaccessを使うときのポイント
ファイル名の最初に(.)ドットがつくファイルはあまり目にすることがないと思います。
先頭にが(.)があるファイルは隠しファイルと呼ばれ、通常はデスクトップなどの画面に表示されないようになっているので、表示するためには少しばかり設定が必要です。
隠しファイルの開き方
設定と言っても、2秒で終わるので下記をご参照あれ。
- Windows:メニューから
[表示]
をクリックし、[隠しファイル]
にチェック - Mac:commandshift.(ドット)を同時に押す
これだけ。簡単ですね。
.htaccessをSEOに活かす方法(使い方は4つ)
ここからは少し実践的に、.htaccess
の使い方を解説していきます。
- ベーシック認証
- 301リダイレクト
- URLの統一
- アクセス制限
上記、使用頻度の高い活用方法をそれぞれ解説するので、気になる箇所からどうぞ。
1. ベーシック認証
まずは、ベーシック認証をかける方法です。下記コードをどうぞ。
# Basic認証
<Files ~ “^\.(htaccess|htpasswd)$”>
Deny from all
</Files>
AuthType Basic
AuthUserFile /フルパス/.htpasswd
AuthName “IDとパスワードを入力してください”
AuthType Basic
require valid-user
# Basic認証ここまで
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
WordPressの場合、.htaccess
には、あらかじめコードが記載されています。
追記コードは、必ず #BEGIN WordPress
の前に記載しないといけないので注意しましょう。後ろに書くと、エラーで正常な処理をしてくれない場合があります。
フルパスを用意する
上記のコードで、フルパスと書かれた箇所には、.htpasswd
のフルパスを記述します。
フルパスの作り方
ユーザー名:Sample
パスワード:Pass
上記のユーザー名、パスワードを設定する場合、テキストエディタを開いて、次のように記述します。
Sample:Pass
ファイル名を[.htpasswd
]にして、サーバー内の.htaccess
と同じ階層に保存すればOKです。
続いて、.htaccess による認証用 パスワード暗号化ツールを用いて、.htaccess
の“フルパス”に記載するコードを用意します。
Sample:yM0iI0pMz9I0s
のようなコードが自動で生成されるので、こちらを.htaccess
の“フルパス”部分にコピペすれば完了です。
表示するメッセージを作る
先ほどのコードでIDとパスワードを入力してください
と書かれた部分には、ログイン画面に表示するメッセージ内容を記述します。
- IDとパスワードがないと見れないぞッ(๑˃̵ᴗ˂̵)
- Please Enter ID Password
など、なんでもOKなので、お好きなメッセージをどうぞ。
2. 301リダイレクト
301リダイレクトは、ブログの記事が増えてくるとめちゃくちゃ使うようになります。
頻度が最も高い使い方だと思うので、別記事でガッツリ解説することにしました。ブログ記事をリダイレクトする方法【301リダイレクトでSEO対策】をどうぞ。
3. URLの統一
wwwのありなしを統一する方法も、301リダイレクトを活用します。
下記のコードをご参照あれ。
# wwwありに統一
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sample\.jp$
RewriteRule ^(.*)$ https://www.sample.com/$1 [R=301,L]
# ここまで
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# wwwなしに統一
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.sample\.jp$
RewriteRule ^(.*)$ https://sample.com/$1 [R=301,L]
# ここまで
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
sample.com
のドメイン部分は、適宜変更して活用してみてください。
書き方はいくつかある
URL統一の書き方は、上記以外にもいくつかありまして、その辺りは、Best Practice: 301 Redirect HTTP to HTTPS (Standard Domain)のスレッドが参考になるので、ここに貼っておきます。
英語ですが、ちょっと頑張って読んでみると理解が深まるはずです。
4. IPアクセス制限
最後にアクセス制限の掛け方を紹介して終わりたいと思います。
IPアクセス制限を掛けることで、指定したIPからのアクセスを拒否したり、逆に指定したIPからのみアクセスを許可したりできるようになります。
# アクセス拒否
order allow,deny
allow from all
deny from アクセス制限したいIPアドレス または ドメイン
# ここまで
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# アクセス許可
order allow,deny
deny from all
allow from アクセス許可したいIPアドレス または ドメイン
# ここまで
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
allow
の欄に、許可したいIPアドレス(またはドメイン)、deny
のほうには、拒否したいIPアドレス(またはドメイン)を書くだけなので、割とわかりやすいと思います。
スポンサードサーチ
まとめ:.htaccessでサイト管理をどうぞ
本記事は以上です。
.htaccess
を活用することで、サイト全体のセキュリティやリダイレクト管理ができるようになります。
とくに、301リダイレクトはSEOでも重要な役割を果たすので、この機会に.htaccess
に触わって慣れておくといいと思います。
本記事を参考にしつつ、まずは出来そうなところからどうぞ。
おわり。