SEO

更新日2023年11月09日

.htaccessとは?書き方や設定方法、読み方、ファイル作成方法を解説

甲斐龍之介

SEOツール「Nobilista(ノビリスタ)」の事業責任者。株式会社IIPにて取締役兼SEO担当者。中小企業庁が設置した経営相談所、福岡県よろず支援拠点にてSEOコンサルタントとしても活動

詳細を見る

公的機関におけるセミナー実績

ソーシャルメディア

 

Webサイトを運営していると、ページの移動や統廃合によるリダイレクトや、特定の相手に対するアクセス制限などを設定する必要に迫られることがあります。
そのような時、Webサーバー側で処理を行うために使われるのが「.htaccess」です。

.htaccessを利用すれば、Webサーバーの動作を簡単にコントロールできます。
しかし、Webサイト側で稼働するものではないため、馴染みの少ない人もいるでしょう。
また、少しでも設置場所や記述を間違うと想定通りに動かないなど、取り扱いには注意が必要です。

そこでこの記事では、.htaccessで出来ることファイルの作成方法実際に制御を行うための記述例などを詳しく紹介しています。
.htaccessの制御が及ぶ範囲など、利用する上での注意点もお伝えするので、サイト運営の参考にしてください。

大手企業も続々導入中!

多機能型 検索順位チェックツール「Nobilista(ノビリスタ)」

Nobilistaは、365日完全自動で大量の検索キーワードの順位を計測するSEOツールです。
※7日間の無料トライアル実施中

Nobilistaの詳細を確認する

301リダイレクトとは?設定方法・確認方法やSEOとの関係、.htaccessの書き方を解説

.htaccessとは

.htaccessとは、Apacheが採用されているWebサーバーにおいて、ディレクトリ単位で様々なアクセス制御ができるファイルです。
シンプルな記述でリダイレクト設定やBasic認証、URL正規化、IP制限、カスタム404ページの表示などが行なえます。

しかし、次のようなデメリットもあるので注意が必要です。

  • 記述を間違えると正しく動作しない
  • 設置場所を誤るとWebサイトが表示されなくなる危険もある
  • セキュリティ低下やサーバー負荷のリスクがある
URL正規化とは?SEOに必要な理由や最適化のやり方

.htaccessの読み方

.htaccessの読み方は、「ドット・エイチ・ティ・アクセス」です。
「. – h – t – access」と分解すると、分かりやすいでしょう。

さらに遡ると、そもそもは「Hyper Text Access」とも呼ばれていました。
その名の通り、特定のファイル(html)へのアクセスを制御するための分散ファイルであり、先頭に「.」を付けることでUnixベースのOSでは隠しファイルとなります。

.htaccessは、1995年にリリースされたApache Webサーバーの初期から存在し、サイトの構成ファイルを変更することなくアクセスを柔軟に制御できるのが特徴です。

.htaccessが人気な理由

WebサイトやWebサーバーの制御方法には、いくつものやり方があります。
その中でも人気が高いのが、.htaccessを使った方法です。

例えば、AというWebページにアクセスしてきた人を、BというWebページにリダイレクト(自動転送)させるには下記のような方法があります。

  • .htaccess:
    Webサーバーに単独のファイルを置く
  • PHP:
    Webサーバーにプログラムを書き込む
  • JavaScript:
    WebページのHLMLにプログラムを書き込む
  • meta refresh
    WebページのHTMLにタグを追加する

この中でGoogleも推奨しているのが、.htaccessを使った方法です。
ファイルの中身がプレーンテキストなので、テキストエディタがあれば誰でも作成や編集ができます。

通常、Webサーバーを制御できるのは、rootアクセス権限という権利を持った管理者です。
専門知識を要するコマンド操作で制御を行うため、一般のユーザーには手出しができません。

しかし.htaccessを使えば、rootアクセス権限のないWebサイト側の管理者でも、一定の制御が可能となります。
Webサイトへのアクセス前に処理されるため、回線の負荷を減らせるのもメリットです。

meta refreshとは?リダイレクト転送の設定方法や注意点を解説

.htaccessの利用条件

便利な.htaccessですが、全てのWebサーバーで利用できるものではありません。
利用するには、下記の条件を満たす必要があります。

Webサーバーが「Apache」を使用している

一般のパソコンと同様、WebサーバーもOSとソフトウェアを搭載してサービスを提供しています。

その中で.htaccessが使えるのは、Apacheを始め、.htaccessに対応しているソフトウェアを使っているWebサーバーです。
Apacheは、Linux系を始め多様なOS上で動くソフトウェアで、殆どのレンタルサーバーやホスティングで使われています。

しかし、Microsoft IISやNginxなどApacheを採用しない環境では利用ができません。
※一部のサービスでは擬似的に.htaccessに対応しているケースもあります。

利用が制限されている

Apacheを採用しているWebサーバーでも、トラブル防止やセキュリティ上の判断から、.htaccessの利用が制限されていることがあります。
そうした場合も、利用できません。

初期設定で.htaccessの利用が不可となっている場合、サーバーの管理者に設定の解除などを問い合わせましょう。

mod_Rewriteがサポートされている

絶対要件ではありませんが、Apache用のモジュールであるmod_Rewriteがサポートされているかも重要です。
mod_rewriteが使える状態になっていないWebサーバーでは、.htaccessの機能が十分に利用できません。

レンタルサーバーなどを契約する時には、以上の3点を確認しましょう。

.htaccessで出来ることや活用方法

.htaccessで出来ることは、下記のような制御です。

  1. リダイレクト設定(301,302)
  2. Basic認証(ユーザ名とパスワードによるアクセス制限)
  3. URL正規化(重複コンテンツの解決)
  4. IP制限
  5. カスタム404ページの表示
  6. デフォルトページの設定
  7. デバイスに応じた振り分け

それぞれ詳しく見ていきましょう。

リダイレクト(Redirect)設定

リダイレクトは、あるURLにアクセスして来たユーザーを、別のURLに自動転送させる設定です。
下記のような場合にリダイレクトが必要となります。

  • サイトが丸ごと移転した場合、移転先のページやサイトのTOPに転送させる(ドメインの変更)
  • サイトの構成を変えた場合、以前のURLに来たアクセスを、現在のURLに転送させる(ディレクトリの変更)
  • 削除された古いページに来たアクセスを、新しいページに転送させる(ページの変更)
  • メンテナンス中など、アクセスを制限している時に違うページに転送させる(一時的な変更)

リダイレクトには、永続的な転送を行う場合の「301リダイレクト」と、一時的な転送を行う場合の「302リダイレクト」があります。
.htaccessではどちらの記述も可能です。
301では検索結果に転送先のURLが表示され、302では転送元のURLが表示されます。

301リダイレクトとは?設定方法・確認方法やSEOとの関係、.htaccessの書き方を解説

重複するURLの統一(URLの正規化)

通常、Webサイトの各ページには個別のURLが付与されており、そこでURLが重複することはありません。
しかし実際には、検索エンジンから見ると複数のページがあるのに、実は1つのページしかないという現象が起こります。

具体的には、下記のようなパターンです。

  • サイトをSSL化すると、「http://(s無し)」が「https://(s有り)」になる
  • 「www(有り)」と「www(無し)」
  • トップページの末尾が「index.html(有り)」と「index.html(無し)」

いずれの場合も、どちらのURLにアクセスが来ても同じページが表示されるという例です。

このような場合、重複コンテンツと見なされ、検索エンジンからの評価が落ちる可能性があります。
被リンクなどの加点要素も個別のURLに分裂するため、SEO的にも不利です。
そのため、いずれかに来たアクセスをもう片方にリダイレクトさせ、評価を統合しなくてはなりません。

具体的には、下記のような設定が必要です。

  • サイトをSSLで暗号化した後、古い「http://~」に来たアクセスを、新しい「https://~」のページにリダイレクトさせる
  • wwwの付いた「https://www~」とwwwの付かない「https://~」に来たアクセスのうち、いずれかをリダイレクトさせる
  • index.htmlの付いた「◯◯.com/index.html」とindex.html無しの「◯◯.com」に来たアクセスのうち、いずれかをリダイレクトさせる
重複コンテンツを避ける方法とは?判定基準や原因別の対策方法、SEOへの影響を解説

Basic認証

Basic認証は、Webサイト全体、あるいはサイトの一部にアクセス制限をかける機能です。
IDとパスワードを利用し、関係者や顧客の一部など、特定の人だけが閲覧できるようにします。

公開前のページでテストや文章校正を行ったり、一般には公開したくないページを保護することが可能です。
課金した人だけが見られる、会員制的な運用もできるでしょう。
専用のシステムを組む必要がないので、コストや時間面で大きなメリットがあります。

IP制限

特定のIPアドレスからのアクセスにだけサイトを表示させたり、逆に特定のIPアドレスからのアクセスをブロックして、サイトを非表示にするなどの制限が可能です。
こうした制御をIP制限と言います。

Basic認証とも似ていますが、接続元のIPアドレスで判断するため、IDやパスワードの入力や管理が不要です。
具体的には、下記のようなケースが考えられます。

  • 公開前のページチェックのため、社内IPや取引先のIPからのアクセスにだけ表示させる。
  • ハッキングなどの攻撃があった場合、そのIPからのアクセスをブロックする。
  • 特定の国や地域からのアクセスを制限する。

カスタム404ページを表示させる

ドメイン部分は正しいが、存在しないページへのアクセスがあった場合に表示されるのが「404エラー(404not found)」です。

通常はWebサーバーで標準設定されている画面が表示されますが、多くは無機質な作りです。
そのままではサイトに価値が無いと判断され、簡単に離脱されてしまうでしょう。

そこで.htaccessを使うと、エラー画面への遷移を自由にカスタマイズできます。
独自のエラー対応ページを作成し、フレンドリーなメッセージやサイトマップなどを表示させれば、離脱率を大きく下げられるはずです。

404エラー(Not Found)の意味とは?エラーの原因や解決方法、対処方法を解説

デフォルトページを任意に設定

「◯◯.com」に対するアクセスがあった場合、Webサーバーは同じ階層にある「◯◯.com/index.html」をトップページとして表示するのがデフォルトです。
しかし、.htaccessを使うと、「index.html」以外の別のファイルに変更できます。

デバイスに応じた振り分け

.htaccessでは、リダイレクト先を複数指定でき、条件を指定して振り分けることが可能です。

例えば、PCとスマートフォンでアクセス先を振り分ける場合、対外的に案内するURLは「index.html」に統一できます。
その上で、スマートフォンからのアクセスがあったら、専用の対応ページに転送できるというわけです。

ディレクトリへのアクセス制限

特定ファイルへのアクセス制限は、Basic認証やIP制限で可能です。
.htaccessではそれに加え、特定ディレクトリ(階層)へのアクセスも任意で制御できます。

ディレクトリは、ファイルを階層的に分類・管理するための概念です。
ファイルを入れる入れ物という意味では、フォルダと同じと考えても支障はありません。

パソコンの画面でフォルダを開くと、そこに含まれるフォルダや書類が一覧表示されるでしょう。
Webサーバーでも同様です。

特定のディレクトリにアクセスすると、その配下に格納される内容物が一覧表示されます。
その中にはシステムに関するデータの他、時には部外者には知られたくない、機密的な情報も含まれるでしょう。
そのため、他者からのアクセスを禁止する設定を.htaccessで掛けておく必要があります。

.htaccessの記述が有効となる範囲(ディレクトリ)

.htaccessはファイルを配置したディレクトリと、それより下層が記述内容の有効範囲です。
それより上のディレクトリには反映されないため、正しい場所にアップロードしなくてはなりません。
逆に下層ページへの.htaccessを間違ってトップディレクトリに配置すると、サイト全体にその設定が適用されてしまいます。

  1. ウェブサイト全体を制御する場合
  2. 特定のディレクトリ以下を制御する場合
  3. 特定のページを制御する場合

ウェブサイト全体を制御する場合

トップページのhtmlファイルが置かれたディレクトリ(最上位のディレクトリ)に、.htaccessファイルをアップロードします。
例えば、「https://◯◯◯.com」全体を対象にする場合、トップページの内容が記述された「index.html」と同じディレクトリに配置するということです。

ただし、下層のディレクトリに異なる記述内容の.htaccessファイルがあった場合、そちらの方が優先されるので注意しましょう。

サブドメイン・サブディレクトリとは?どっちがSEOに有利?違いやメリット・デメリット、使い分けのやり方を解説

特定のディレクトリ以下を制御する場合

あるディレクトリに.htaccessファイルを置いた場合、その記述内容は、同じディレクトリとそれより下層で有効となります。
言い方を変えると、反映させたい範囲の中での最上位のディレクトリに、.htaccessファイルをアップロードするということです。

例えば、「A」ディレクトリに置いた場合、「A」に加え「A-1」「A-2」「A-3」ディレクトリにも内容が反映されます。
しかし「B」ディレクトリはそれらと親子関係にないため、設定は反映されません。
「B-1」「B-2」「B-3」も同様です。

特定のページを制御する場合

末端のページを制御する場合は、そのページのhtmlファイルと同じディレクトリに.htaccessファイルをアップロードします。
例えば、「A-3」ディレクトリに置いた場合、内容が反映されるのは「A-3」ページだけです。

この時、「A-3」ページは、最上位ディレクトリと「A」ディレクトリに置かれた.htaccessの影響下にあります。
両者が競合した場合、優先されるのは「A-3」ディレクトリに置かれた方の内容です。

.htaccessの目的別の書き方や記述例

.htaccessでは目的別にディレクティブと呼ばれる文法があります。
ディレクティブには、以下のようなものがあり、これらを組み合わせて使うのが特徴です。

  1. Rewrite Engine:
    URLの書き換えやリダイレクトの有効化
  2. Rewrite Cond:
    RewriteRuleを実行する条件指定
  3. Rewrite Rule:
    条件が満たされた場合に指定URLヘのリライト/リダイレクト

下記では目的別に.htaccessの書き方や記述例をお伝えします。

リダイレクトの記述例

.htaccessでリダイレクトさせる場合、2つの方法があります。
サイト全体をリダイレクトさせる方法と、ページ単位でリダイレクトさせる方法です。

サイト全体のリダイレクト(サイトが移転し、ドメインが変更された場合)

サイトの引っ越しでドメインのみが変更された場合は、シンプルな記述で済みます。
新旧のサイトが共に次のようになっていることが条件です。

  • 全く同じディレクトリ構造
  • httpsまたはhttpに統一されている

その場合、以下のいずれかが基本構文になります。

Redirect Permanent / リダイレクト先のURL
Redirect 30x / リダイレクト先のURL

ここでのディレクティブは、次の意味があります。

  • Redirect Permanent:
    永続的な転送であることを検索エンジンに知らせます。
  • Redirect 30x:
    永続的か(301)一時的か(302)を指定できます。

例えば、転送先が「https://◯◯◯.com」の場合の記述例は以下のようになるわけです。

Redirect Permanent / https://◯◯◯.com
Redirect 301 / https://◯◯◯.com
Redirect 302 / https://◯◯◯.com

個別ページのリダイレクト

実際には、そこまで単純な移転ばかりではありません。
ドメインは変わらないまま、ページの統廃合などでリダイレクトが必要になるケースも多いものです。
この場合も、いくつかの記述方法があります。

個別ページをリダイレクトさせる時に使えるのが、下記のディレクティブです。

  • Redirect Match 30x:新旧のページのアドレスをマッチさせます。

構文は、以下の通りです。

Redirect Match 30X ^/リダイレクト元のパス$ リダイレクト先のURL

「リダイレクト元のパス」は、ドメイン部分を除く、ページ指定に関するURLを指します。
例えば、「https://△△△.com/page/001」の場合、パスは「/page/001」です。

「https://◯◯◯.com/new/001」に転送する場合、記述例は以下のようになります(30x部分は301で指定しています)。

<IfModule mod_rewrite.c>
Rewrite Engine On
Redirect Match 301 ^/page/001$ https://◯◯◯.com/new/001
</IfModule>

ここでの「<IfModule mod_rewrite.c>」〜「</IfModule>」は、Apacheモジュールのmod_rewriteが利用できるかどうかを判定するものです。
「Rewrite Engine On」は、利用できる場合、URLの書き換え機能を有効化するために使う宣言文です。
mod_rewriteが利用できない環境では、この構文は機能せずエラーとなります。

もう1つ、使えるディレクティブが「Rewrite Rule」です。

  • Rewrite Rule:指定URLヘのリライト/リダイレク

構文は以下の通り。

Rewrite Rule ^リダイレクト元のパス$ リダイレクト先のURL [R=30X,L]

記述例は、次のようになります。

<IfModule mod_rewrite.c>
Rewrite Engine On
Rewrite Rule ^/page/001$ https://◯◯◯.com/new/001 [R=301,L]
</IfModule>

Rは、リダイレクトが成功した場合に引き継ぐ30x。
Lは、リダイレクトできなかった場合に、そこで指示を終了(Last)させるものです。

ディレクトリ(カテゴリー)単位のリダイレクト

ディレクトリ内のページ構成はそのまま、ディレクトリの名称だけ変えた場合もリダイレクトが設定できます。
いずれも同じドメインのままでのリダイレクトです。

mod_rewriteが使えない環境では、次のとおり。

Redirect Permanent /page/ https://◯◯◯.com/new/

使える環境では、次のとおりです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^page(.*)$ /new$1 [R=301,L]
</IfModule>

ここでの「(.*)$」は、アクセスされたページのパスを示し、それが「$1」に代入されます。
「https://◯◯◯.com/page/001」ならば、「/001」が$1に入り、「https://◯◯◯.com/new/001」にリダイレクトされるということです。
「page」ディレクトリに置いておけば、下層の全ページが「new」カテゴリーの新しいページに永続的にリダイレクトされます。

Basic認証の記述例

Basic認証では、下記のディレクティブを使用します。

  • AuthType:
    認証タイプを指定します
  • AuthUserFile:
    ユーザ名とパスワードを記載した.htpasswdファイルの設置場所
  • AuthGroupfile:
    グループ単位でアクセス許可を設ける場合に使います
  • AuthName:
    ID・パスワード入力欄の上に表示されるテキスト(日本語は文字化けするので英数字)
  • Require:
    アクセスを可否の設定

実際には下記のような記述です。

AuthType Basic
AuthUserFile https://◯◯◯.com/.htpasswd
AuthGroupfile /dev/null
AuthName “Please enter your ID and password”
require valid-user

今回はBasic認証を使うため、「AuthType」は「Basic」。
「AuthGroupfile」の「/dev/null」」は、特に指定しない場合に使います。
「require」の「valid-user」は、全ユーザーに認証を有効化するという意味です。

Basic認証では、認証に使うIDとパスワードを記録した「.htpasswd」ファイルも作成しておく必要があります。

内容は、次のようにテキストで記載します。

ユーザーID①:暗号化されたパスワード①
ユーザーID②:暗号化されたパスワード②
ユーザーID③:暗号化されたパスワード③

パスワードは暗号化の必要があり、暗号化されていないと認証されません。
暗号化には下記のような、無料の生成サービスが利用できます。

https://www.luft.co.jp/cgi/htpasswd.php

完成したらファイル名を「.htpasswd」にして、Basic認証を行うディレクトリにアップロードします。

URL正規化の記述例

SSL化による「s」付き(https://)と、従来の「s」無し(http://)を正規化する場合の記述例です。
ここでは、下記のディレクティブを使用します。

  • Rewrite Engine:
    URLの書き換えやリダイレクトの有効化
  • Rewrite Cond:
    RewriteRuleを実行する条件指定
  • Rewrite Rule:
    条件が満たされた場合に指定URLヘのリライト/リダイレクト

構文は、以下の通りです。

Rewrite Engine on
Rewrite Cond %{条件設定} 条件分岐
Rewrite Rule .* 転送先のURL%{REQUEST_URI} [R=30X,L]

ここでは「転送先のURL」はs付き(https://)の全体、「REQUEST_URI」はアクセスが来たs無し(http://)のドメイン名より後ろを表します。
「http://www.◯◯◯com/page/001」であれば、REQUEST_URIは「/page/001」です。

実際には下記のような記述です。

Rewrite Engine On
Rewrite Cond %{HTTPS} off
Rewrite Rule .* https://www.◯◯◯com%{REQUEST_URI} [R=301,L]

「RewriteCond %{HTTPS} off」は、HTTPSが無効(off)の時、次のルールを適用するという条件指定となります。
HTTPSが無効とは、SSL化されていない、http://にアクセスしてきた場合です。

条件が満たされた場合は「https://www.◯◯◯com%{REQUEST_URI} 」=「https://www.◯◯◯com/page/001」にリダイレクトされます。

なお、URL正規化が完了したら、意図したページがきちんとGoogleにインデックス登録されているか、意図したページが検索結果に露出できているかを確認しましょう。
例えば、実際にGoogleで検索を行い、自社サイトへのリンクにカーソルを合わせます。
すると、左下に検索結果に露出されているURLを把握することができます。

URLの正規化を行なっても、Google検索上で意図したURLが表示されていない場合、大きくSEO評価を損なうことがあります。
このような状態が続いてしまうと、長期的に検索からのトラフィックを低下させる事態にも陥りますので、「正規化→検索に登録されているURLが変更したか」まで確認するようにしましょう。

なお、確認するべきURLがたくさんある場合、すべてのURLが検索で書き換わったかを確認するのは困難です。
そこで利用していただきたいのが、当社で提供している検索順位チェックツール「Nobilista(ノビリスタ)」。

Nobilistaを利用することで、登録した検索キーワードに対して、どのようなURLがランクインしているのかを毎日自動的に記録します。

また、キーワードごとに検索に露出されているURLをCSVで一括抽出も可能です。

これにより、意図していないURLが検索に露出している場合、フィルタなどで簡単に把握できます。
もし、正規化ができていないURLがあれば、そのURLを対象に調査及び何かしらの施策も可能です。

URL正規化によりSEOの土台となる部分の改善を行いたい場合、ぜひNobilistaをご利用ください。

クレカ登録不要で7日間使い放題

公式サイトで詳しく確認する

URL正規化とは?SEOに必要な理由や最適化のやり方

IP制限の記述例

下記のディレクティブを使用します。

  • oreder:
    拒否と許可のどちらを優先するか
  • deny from:
    アクセスを拒否するIPアドレス
  • allow from:
    アクセスを許可するIPアドレス

構文は、ごくシンプルです。
記述例を見てみましょう。

oreder deny,allow
deny from all
allow from ◯◯◯.com
allow from 192.0.2.0
allow from 123.123.123.123

orederを「deny,allow」にした場合、基本は全て拒否するが、特定のIPアドレスは許可するという意味になります。
「allow,deny」であれば、その逆です。

「deny,allow」であれば、まずは一旦「deny from all」で全て拒否します。
続く「allow from」で、アクセスを許可するIPアドレスを記載していくという順番です。
IPの書き方はドメイン名、グローバルIPアドレス、プライベートIPアドレスなどが利用できます。

カスタム404エラーページの記述例

下記のディレクティブを使用します。

  • Error Documen:エラー発生時に、表示させるメッセージや、リダイレクト先のURLを指定する

構文は、以下の通りです。

Error Document エラーコード エラーメッセージ
Error Document エラーコード リダイレクト先のURL

記述例は、以下のようになります。

Error Document 404 http://◯◯◯.com/404error.html

同じドメイン内であれば、ドメインは省略しても問題ありません。

Error Document 404 404error.html

デフォルトページの記述例

下記のディレクティブを使用します。

  • Directory Index:「/」で終わるディレクトリへのアクセスに返すファイルを設定する。

ファイル名は複数指定できます。

構文は、以下の通りです。

Directory Index ファイル名1 ファイル名2 ファイル名3 …

例えば、「https://◯◯◯.com/」にアクセスが来ると、通常は「https://◯◯◯.com/index.html」が返されます。

しかし、「Directory Index top.html」と記述すると、「https://◯◯◯.com/top.html」のページが返されるということです。

「Directory Index top.html index.html」の場合、「top.html」があればそれが表示され、無い場合は「index.html」が表示されます。
どちらも無ければエラーが返され、トップページは表示されません。

デバイスに応じた振り分けの記述例

PC用のページとスマホ用のページを別々に用意し、アクセス元のデバイスからユーザーエージェントを取得し、リダイレクトで振り分けることができます。

使用するディレクティブは、リダイレクトでも使った下記のセットです。
記述例は、以下の通り。

<IfModule mod_rewrite.c>
Rewrite Engine On
Rewrite Cond %{HTTP_USER_AGENT} (iPhone|Android.*Mobil) [NC]
Rewrite Cond %{QUERY_STRING} !mode=pc
Rewrite Rule ^$ /sp/ [R,L]
</IfModule>

ここで「Android.*Mobile」の「.*」は、任意の文字列を意味します。
Androidを示すユーザーエージェントでは、Androidから離れた場所にある「Mobile」でタブレット等と識別することになるからです。
[NC]は、大文字・小文字を区別しないという意味で、ユーザーエージェントに含まれる大文字・小文字の区別をなくします。

「!mode=pc」はアクセス元が「パソコンではない」という意味です。
パソコンだった場合は、本来のPC用のページを表示させます。
この2点をクリアした時点で、スマホからのアクセスであると判断して「Rewrite Rule」に進む流れです。

「^$ /sp/」は1つ下の階層にある「sp」を示すので、スマホからのアクセスがあった場合、https://◯◯◯.com/sp/にリダイレクトされます。

.htaccessファイルの作成と設定方法

.htaccessはテキストファイルなので、テキストエディタを使い「.htaccess」というファイル名で保存すれば作成できます。
作成したファイルはサーバーにアップロードし、動作やエラーなどに問題がないかを確認しましょう。

実際の設定方法は以下の説明を参考にしてください。

  1. .htaccessファイル有無を確認する
  2. .htaccessファイルを作成する
  3. .htaccessファイルをサーバーにアップロードする
  4. 動作やエラーを確認する

.htaccessファイル有無を確認する

既にサーバー上に.htaccessファイルがある場合、それを利用して編集しましょう。
.htaccessファイルは各ディレクトリに1つしか置けないため、探し出すのは簡単です。

見つかった場合はファイルをダウンロードし、命令文を記述して元の場所にアップロードします。
その際、元データのバックアップを取っておいてください。

ファイルがなかった場合は、新規に作成します。

 .htaccessファイルを作成する

.htaccessは一般のテキストエディタで作成できますが、幾つかの注意点があります。

命令文を記述し、改行で終える

テキストエディタを開き、書類を新規作成、ディレクティブを使って任意の記述を行います。

メモ帳やワードパッドなどは余計な文字コードなどが入ることがあるので、おすすめしません。
プレーンテキストで保存できるタイプを使いましょう。

指示文に使用できるのは英数字のみ、全角スペースなども入れないようにします。
URLに日本語文字が含まれる場合は「%」を使った英数字形式にエンコードしなければなりません。
コメント部分は、日本語を使っても大丈夫です。

記述の最終行では改行を入れ、1行分以上の空白が出るようにしておきます。
この手配がないと、実行時にエラーが起きる可能性があります。
余裕を持って2~3行程度の改行を入れておくと安心です。

文字コードと改行コードを確認して保存する

設定画面などで、ファイルを保存する際の形式を確認しましょう。

英数字のみの記述であれば文字コードは問いませんが、「UTF-8」にする場合は「BOM無し」を選択します。
Windows付属の「メモ帳」では「UTF-8」を選択すると「BOMあり」になってしまうので、「ANSI」で保存してください。

改行コードは「LF」(ラインフィード)、または「CR+LF(キャリッジリターン+ラインフィード)」で保存します。
「CR」にするとエラーとなります。

ファイル名を「.htaccess」にする

テキストエディタでファイルを保存すると、通常は「ファイル名」に「.txt」という拡張子が付きますが、.htaccessでは全体で「.htaccess」です。

Windowsで拡張子を隠す設定にしている場合、ファイル名が「.htaccess.txt」となっているのに気が付かないこともあるので、注意しましょう。

MacOSの場合、「.」で始まるファイルはシステム用の書類となり、初期設定では非表示です。
そのため「.htaccess」にした瞬間、ファイルが消えてしまいます。
システム用の書類も表示させるように設定を変えておくと安心です。

手元での名称設定が難しい場合は、通常のtxt書類としてサーバーにアップし、FTPソフトを使って名称を「.htaccess」に変更しましょう。

 .htaccessファイルをサーバーにアップロードする

.htaccessファイルが完成したら、Webサーバーにアップロードします。
配置するディレクトリによって.htaccessファイルの内容が適用される範囲が変わるので、正しい位置にアップすることが重要です。

動作やエラーを確認する

.htaccessファイルをアップロードしたら、想定通りに動作するかを確認しましょう。
記述内容に問題がある場合、対象範囲のページにアクセスしても何も起きない可能性があります。
あるいは、エラーが出ることもあるでしょう。

ツールで確認する

リダイレクトの状況を確認できる無料ツールもあるので、活用してください。

otohuku.jp

リダイレクト元のURLを入力して「チェックする」をクリックすると、設定された内容やリダイレクトされた回数などが分かります。

Mface Tools

リダイレクトされた回数やヘッダーの情報などが確認できます。
検索エンジンを指定して、リダイレクトのシミュレートもできるのが特徴です。

htaccess tester

リダイレクト元のURLと.htaccessに記述した指示文を入力することで、簡易的なテストを行なえます。

「500 Internal Server Error」が出る場合

「500 Internal Server Error」が出る場合、.htaccessファイルの記述内容が間違っている可能性が高いでしょう。

まず考えられるのが、ディレクティブ名などのスペルミスです。
余計なカッコや全角のスペースが入っていてもエラーになります。
その他、考えられるのは下記のようなケースです。

  • 書類形式がリッチテキスト形式などになっている
  • 文字コードが「UTF-8」で「BOM無し」になっていない
  • 改行コードが「CR」になっている
  • 指示文の中に全角スペースを含む日本語文字が混じっている
  • サーバーがApache以外のソフトウェアを使っている
  • サーバー側で利用できる機能が制限されている

WordPressでの利用方法

最も普及しているCMSであるWordPressでは、下記のような特徴があります。

.htaccessファイルは自動で生成されている

サーバーにWordPressをインストールすると、.htaccessファイルが自動で作成されます。
「wp-config.php」「wp-admin」「wp-content」などが入っている、サイトのルートフォルダに置かれているはずです。
一般のWebサイトと同様、このファイルを編集すれば.htaccessの機能を利用できます。

プラグインが使える

WordPressでは、プラグインを使って作業を簡素化することも可能です。
方法としては、以下の2つのアプローチがあります。

  • 管理画面から.htaccessを編集する
  • プラグインでリダイレクトなどを指定する

Htaccess Editor – Safely Edit Htaccess File

管理画面から直接、.htaccessを編集できるようになります。
.httaccessファイルをダウンロード>編集>アップロードという手間がなくなるのがメリットです。

「Test Before Saving」を使うと記述内容の構文チェックが出来るので、エラーが事前に分かります。
「Restore Last Backup」では、保存した過去の.htaccessを復元できるので、問題が発生しても安心です。

Redirection

プラグインの画面から、リダイレクト設定などのルールを登録できます。
視覚的に指示を設定できるので、.htaccessの中身に触る必要がなくなります、
.htaccessで指示文を記述するには一定の専門知識が必要ですが、大幅に楽になるでしょう。

元から記述されている内容は消さないこと

WordPressで生成されている.htaccessには、最初から独自の記述が入っています。

具体的には「# BEGIN WordPress~END WordPress」が該当しますが、ここはWordPressにとって必要な記述となるので、削除や変更をしないようにしてください。

.htaccessの注意点

.htaccessを取り扱う上での注意点には、次のようなものがあります。

  1. 専門的な知識がないと危険
  2. セキュリティが低下するリスクがある
  3. サーバーの負担が大きくなる可能性がある
  4. 設置場所は絶対に間違えないこと

.htaccessは少しでも記述や配置を間違えると、サイトに甚大な不具合をもたらす可能性があるので、細心の注意が必要です。

専門的な知識がないと危険

記述した指示文に誤りがあった場合、本来想定していたアクセス制御が実行されません。
最悪の場合、サイトが表示されなくなる可能性もあります。

すぐに気が付けば、まだ挽回もできるでしょう。
しかし、検索エンジンからの評価がリダイレクト先に引き継がれなかったり、訪問者の満足度を下げて離脱に繋がる事態は長期的なダメージに繋がります。

そのため.htaccessファイルの編集やサーバーへの配置を専門知識がない人に任せるのは、危険性が高いでしょう。

もし、自社に専門知識を持つ人材がいない場合、テクニカルなSEOに知見のあるSEO会社などに相談をすると良いでしょう。

SEO対策会社・コンサルティング会社・大手代理店おすすめ比較!費用相場や選び方、悪質業者の特徴を解説

セキュリティが低下するリスクがある

.htaccessファイルの編集や設置を外部に委託した場合、セキュリティへの懸念が生まれます。
Webサーバーでの作業では、サーバーに関わる情報を作業者に提供する必要がありますが、それは企業にとって重要な機密です。
.htaccessファイルを悪用される危険もあるので、依頼先は慎重に見極めましょう。

サーバーの負担が大きくなる可能性がある

Webサーバーで.htaccessを許可した場合、アクセスが来るたびに.htaccessの所在や命令文を読み込む必要があります。
サイトの規模が大きくなり、アクセス数も増えてくると、そうした負荷が無視できないレベルになるでしょう。
その結果サーバーの応答性能が低下し、ユーザビリティに悪影響を及ぼす可能性も出てきます。

.htaccessを稼働させるApacheの開発元からも、.htaccessを過度に使わないことが推奨されています

設置場所は絶対に間違えないこと

.htaccessファイルは配置されたディレクトリと、その下の階層に対して影響を及ぼします。
複数の.htaccessファイルの影響を受ける場合、最も下層に置かれたファイルの内容が優先されるので、その関係性も把握しておかねばなりません。
.htaccessファイルを正しく適用するには、設置場所に厳重な注意が必要です。

持続的なサイト運営にはキーワード解析も欠かせない

ページの移動などがあった時、.htaccessを活用して永続的にリダイレクトを設定していく事は、SEOやユーザビリティの観点で重要です。
サイト運営が長くなるほど、そのような対応も多くなって行くでしょう。

同じくサイト運営が長くなるほど重要になるのが、永続的なコンテンツの改善です。
特に狙ったキーワードの検索順位を高めたり、強化の余地のあるキーワードを見極めて強化していく取り組みが欠かせません。
しかしそれを人手で行うのは大変でしょう。

そこで効果的なのが、クラウド環境で24時間稼働し、キーワード順位などを追いかけてくれる自動ツールです。

例えば「Nobilista(ノビリスタ)」ならば、デバイスを問わず利用でき、複数のスタッフで情報共用もできるので業務効率が高まります。

強化すべきキーワードも発見しやすくなるので、長期的なサイト運営において、強力なツールになるでしょう。

クレカ登録不要で7日間使い放題

公式サイトで詳しく確認する

7日間0円トライアル実施中!

※クレジットカードの登録は不要です。   
※トライアル終了後の自動課金はありません。