Webサイトやメディアを運営する上で必要となる要素の一つとして、リダイレクトが挙げられます。リダイレクトとはWebサイトのあるページを閲覧した際に、自動的に別のページへ転送されるような設定を指します。
Webサイトのリニューアルに伴う転送やURLの表記変更など、リダイレクトが必要となる場面はさまざまです。そんなリダイレクトを行なう際に必須となるファイルが、.htaccess(ドットエイチティーアクセス)です。.htaccessは一見難しそうに感じられますが、Webサイトの運営において押さえる必要があります。
この記事では、.htaccessリダイレクトの概要や設定方法、書き方などについて解説します。Webサイトの運営をしていてリダイレクトでお悩みの方は、ぜひご覧ください。
サイトの成果改善でお困りではないですか?
「サイトからの問い合わせを増やしたいが、どこを改善すべきか分からない…」そんなお悩みをお抱えの方、ニュートラルワークスにご相談ください。
弊社のサイト改善コンサルティングでは、サイトのどこに課題があるかを実績豊富なプロが診断し、ビジネスに直結する改善策をご提案します。
目次
.htaccessとは?
まずは、.htaccessの概要や意味について解説します。.htaccessとは、Webサイトにおいてアクセス制御といった、Webサーバーの設定を簡易的に行なえるファイルです。Webサイトのリダイレクトにおいては、.htaccessの活用が必須といえます。
WebサイトはHTMLやCSSなどのマークアップ言語を活用することで、装飾や構成などを作り上げることができます。しかしリダイレクトについては、HTMLで処理することができないため、サーバー側でリダイレクトの対応をする必要があります。
サーバーは重要な部分な上に知識が必要なため、管理者以外が設定を変更するのはハードルが高いです。しかし.htaccessファイルを活用すれば、リダイレクトに必要なサーバーの設定を簡単に行えます。
すなわち.htaccessとは、リダイレクトのために必要なサーバー設定を行なうためのファイルです。.htaccessファイルに命令文を記載することで、リダイレクトができる状態となります。
.htaccessの有効範囲・設置場所
続いて、.htaccessの有効範囲とファイルの設置場所について解説します。.htaccessの有効範囲は、ファイルをアップロードした場所の配下にあるディレクトリすべてです。
たとえば、Webサイト全体でリダイレクトを有効化するのであれば、トップと同じ階層に.htaccessファイルを設置します。しかし枝分かれしたAとBという階層がある場合、Aに.htaccessファイルを設置したらBにはリダイレクトは適用されません。この場合、AおよびAから枝分かれした下の階層のみリダイレクトが適用されます。
また一つのWebサイトで、複数の.htaccessを設置することも可能です。たとえばトップにXという.htaccessファイル、枝分かれしたAとBのうち、Bの方にYという.htaccessファイルを設置します。するとトップとA以下の階層にはXのリダイレクトが適用され、Bとその下の階層にはYのリダイレクトが適用されます。
.htaccessを設置する場所は、リダイレクトを設定したい階層です。
.htaccessでできること
.htaccessでできることは、リダイレクト以外にもいくつかあります。.htaccessが活用される場面の主な例は、以下の通りです。
- ベーシック設定
- URLの正規化
- キャッシュの設定
- 特定ドメインからのアクセス除外
ベーシック設定とは、ページ閲覧にあたってユーザー名と、パスワードの入力を必要とさせる設定です。閲覧できるユーザーを絞る必要がある場合に、.htaccessのベーシック設定が使用されます。なお、ベーシック設定には.htpasswdというユーザー名と、パスワードを格納するためのファイルも必要です。
URLの正規化とは、一つのページに存在するURLを統一することです。たとえば同じページであるにも関わらず、「www」「index.html」の有無といった表記揺れが起きてしまうケースがあります。このような事態を防ぎURLを統一する上でも、.htaccessが有用です。
キャッシュの設定とは、簡単に表現するとWebページの読み込みを速くする設定のことです。.htaccessでキャッシュを適切に設定できれば、サーバーリクエストが減少しページの読み込み速度が上がります。
最後に、特定ドメインからのアクセス除外ですが、その名の通り指定したドメインによるアクセスの制限です。不正アクセスや攻撃の防止に活用されます。このように.htaccessを活用すれば、Webサイトを運営する上で便利な設定が多数できます。
リダイレクトとは?
.htaccessリダイレクトをうまく設定するためには、リダイレクトに関する知識も必要です。続いて、リダイレクトについて概要を解説します。リダイレクトとは、Webサイトや特定のページにアクセスしたユーザーを、強制的に別のページへ転送する設定のことです。
リダイレクトの設定をすれば、Aというページにアクセスしたユーザーを、すぐにBというページへ転送できます。リダイレクトの設定を行なわずにいたら、何らかの理由でユーザーにアクセスされたくないページもそのまま公開となってしまいます。
ユーザーを別ページへ誘導する案内や設定を、HTMLやCSSなどの言語だけで行なうのは非常に困難です。アクセスされたら自動で別ページへ転送されるよう、リダイレクトの設定をしておくのが効率的です。
このリダイレクト設定を簡単に行なうために、.htaccessファイルが活用されます。簡易的にサーバー側の設定ができるため、リダイレクト設定では.htaccessを使用するのが一般的です。
リダイレクトを行なう重要性と目的
なぜリダイレクト設定を行なう必要があるのでしょうか。ここでは、リダイレクト設定の重要性や目的を紹介します。リダイレクトを行なう具体的なメリットは、以下の通りです。
- URLが変わってもこれまでと同じブックマークやリンクからアクセスできる
- メンテナンスやリニューアルなどのタイミングで、対処中のページへのアクセスを防げる
- URLが変わったあとも、これまで蓄積されてきたGoogleからの評価を引き継げる
リダイレクトを行なえば、過去のURLにアクセスされた場合に、自動的に現在使用しているURLへ転送できます。そのためブックマークのし直しや、リンクの貼り直しをすることなく、新しいページへのアクセスが可能です。
また、メンテナンスやリニューアルなど、ページにアクセスされるのを防ぎたいタイミングがあります。この場合もリダイレクト設定を行なえば、アクセスを容易に防げます。
最後に、リダイレクト設定を行なうことで、Googleからの評価の引き継ぎが可能です。そのため、一からSEO施策のやり直しをする必要がありません。このようにリダイレクトには、Webサイトを運営する上で多くのメリットが存在します。
リダイレクトの種類
リダイレクトには301リダイレクトと、302リダイレクトという2種類が存在します。それぞれのリダイレクトの特徴を押さえることが、リダイレクトを使いこなすために必要です。ここでは、それぞれのリダイレクトについて、概要や特徴を紹介します。
301リダイレクト
301リダイレクトとは、WebサイトやページのURLが完全に変更となったときに行なう処理です。301リダイレクトは、主に以下のような場面で設定されます。
- Webサイトのリニューアルや移転によってURLやドメインが変わった
- URLの正規化によってURLが統一された
- SSL化によりhttpからhttpsに変わった
このような場合には、今後古いURLを使用することはないため、301リダイレクトの設定を行なう必要があります。301リダイレクトの設定をすれば、Googleといった検索エンジンが古いページの評価を新しいページに引き継いでくれます。そのため検索順位を取り戻すために、時間がかかることはありません。
何らかの理由でURLが変更となった場合、ユーザーを新しいページへ誘導するためにリダイレクトが必要です。その際に301リダイレクトで設定を行なえば、検索エンジンからの評価もそのまま引き継ぐことができます。なお、検索エンジンには転送後の新しいURLが表示されるようになります。
302リダイレクト
302リダイレクトは301リダイレクトと異なり、ページの転送が一時的に必要な場合に行なわれるリダイレクト設定です。いずれ転送前のページを活用するようになるため、検索エンジンに表示されるのは古いページのままとなります。
302リダイレクトが必要となる場面は、具体的に以下の通りです。
- Webサイトやページのメンテナンス中
- Webサイト上でA/Bテストをする場合
- パソコンやスマートフォンなど、ユーザーの使用するデバイスによって表示させるページを替えたい場合
メンテナンスやA/Bテストが終わったら、転送をやめて元のURLに戻します。またデバイスによってページを切り替える場合には、元のURLと転送先のURLの両方を使用します。
このようにリダイレクトが必要な期間が一時的、もしくは転送前と後の両方のページが必要な場合には、302リダイレクトが適切です。なお、301リダイレクトが適切な場合に302リダイレクトを設定するのは、検索エンジンからのマイナス評価につながってしまいます。
そのため、どちらのリダイレクト設定が適切であるか注意が必要です。
.htaccessによるリダイレクト設定方法・手順
.htaccessによるリダイレクト設定方法と手順について具体的に解説します。Webサイトの設定をうまく実現するためには、正しい方法と手順に沿う必要があります。リダイレクト設定を行ないたいと考えている方は、必ず押さえるべきポイントです。
.htaccessファイル有無を確認する
まずは、.htaccessファイル有無の確認を行ないます。.htaccessファイルのある場所は、Webサイトを管理するサーバー内です。サーバー内に.htaccessファイルがあれば、そのファイルに記述を書き加えてリダイレクト設定をします。そのため.htaccessファイルをダウンロードし、編集を行います。
サーバー内に.htaccessファイルがなければ、新たにファイルの作成が必要です。.htaccess作成に使うのはテキストファイルです。テキストファイルにリダイレクトに必要な記述を行ない、「.htaccess」という名前でファイルを保存します。
.htaccessファイルの有無によって対応が変わるため、まずはサーバー内にファイルがあるか探す必要があります。
リダイレクトを記述する
.htaccessの設定をするには、リダイレクトの記述が必要です。リダイレクトの記述内容は設定したい内容によって異なり、以下のような種類があります。
- ページ単位でリダイレクト
- ディレクトリ単位でリダイレクト
- ドメイン単位でリダイレクト
- URLの正規化(統一)
- SSL化によるURL変更
すべてリダイレクトであることに変わりありませんが、必要な記述内容がまったく別です。そのためリダイレクトの範囲や目的などを明確に把握し、その上でリダイレクトの記述をします。
なお.htaccessファイルにおけるリダイレクトの記述内容は、サーバー環境などによって変わることがあります。そのため一般的な記述内容をコピペせず、使用しているサーバーに適した正しい記述内容であるかも確認が必要です。
リダイレクトが必要なケースと詳しい書き方
前述したように、リダイレクトが必要となるケースはさまざまです。そしてケースによって.htaccessファイルに記述するべき内容が異なります。
ここでは、リダイレクトが必要なケースと、それぞれの詳しい書き方について6つ解説します。いずれの場合も、サーバー環境によって記述が異なる場合があるため、注意が必要です。
ページ単位でリダイレクトをする
まずは、ページ単位でリダイレクトをする場合です。ページ単位でのリダイレクトは、特定のページのみURLが変更になった場合に行なわれます。ページの不具合などであれば、ページ単位での302リダイレクトが設定されます。
ページ単位でリダイレクトをする場合に必要な記述の例は、以下の通りです。
RewriteRule ^/oldpage.html$ http://www.test.com/newpage.html [R=301,L]
「oldpage」の部分に転送前の古いURL、「newpage」の部分に転送先のURLを入力します。転送先のURLについてはhttp~のように、最初から入力する点に注意が必要です。302リダイレクトの場合には、「301」の部分を「302」に書き換えます。
ディレクトリ単位でリダイレクトをする
続いて、ディレクトリ単位でのリダイレクトです。この場合は.htaccessファイルにおいて、以下の記述を行ないます。
RewriteRule ^olddirect(.*)$ /newdirect$1 [R=301,L]
RewriteRule ^newdirect/oldpage.html$ http://www.test.com/newdirect/newpage.html [R=301,L]
「olddirect」に古いディレクトリ、「newdirect」に新しいディレクトリを記述してください。URLの部分についても、自社サイトのURLに書き換えをします。なおこちらも302リダイレクトの場合には「301」を「302」に書き換えます。
ドメイン単位でリダイレクトする
ドメイン単位でのリダイレクトでは、まずはURLの最適化が必要です。最適化には永続化・正規化・静的化が挙げられますが、まとめると同じURLを使い続け表記揺れを起こさないことを意味します。
ドメイン単位でリダイレクトをする場合には、まずURLの最適化設定を行ないます。その後、以下の記述内容を追記することで、リダイレクト設定の記述が完了です。
RewriteCond %{HTTP_HOST} ^(www.oldurl.com)(:80)? [NC] RewriteRule ^(.*) http://www.newurl.com/$1 [R=301,L]
これまでと同様、URL部分については自社サイトのURLに書き換えが必要です。こちらも301リダイレクトの場合ですが、ドメイン単位でのリダイレクトで302リダイレクトが必要な場面は、それほど多くありません。
サブドメインのリダイレクトをする
サブドメインへアクセスされた場合、ルートドメインまたは特定のディレクトリへ転送をするリダイレクト設定もできます。サブドメインからルートドメインへ転送する記述は、以下の通りです。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.test.com$
RewriteRule (.*) https://test.com/$1 [R=301,L]
特定のディレクトリへ転送をする場合には、以下の記述を行います。
RewriteCond %{HTTP_HOST} ^sub.test.com
RewriteRule ^(.*) https://test.com/sub/$1 [R=301,L]
こちらもURLの書き換えや、必要に応じて「302」への修正をしてください。
URLを正規化する
同じページなのに「www」がある場合とない場合が発生してしまうなら、リダイレクトを行ない、URLを正規化する必要があります。「www」有りに統一する場合の記述内容は、以下の通りです。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(test.com)(:80)? [NC] RewriteRule ^(.*) http://www.test.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.test.com/$1 [R=301,L]
こちらもURLの書き換えを行なってください。
SSL化の転送を行なう
SSL化とは、Webサイト全体の通信を暗号化(HTTPS化)することです。WebサイトのSSL化を行なうと、サイトのURLの最初が「http」から「https」になります。SSL化を行なった場合のリダイレクト設定では、以下の記述が必要です。
RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301]
こちらは特に書き換えは必要なく、このままコピペして.htaccessへ記載します。近年はセキュリティの意識が非常に高まっています。そのためこれまでhttpで運営していた場合には、SSL化を行ないリダイレクトでの転送が必要です。
リダイレクトをする際の注意点
リダイレクトをするにあたって、いくつか気をつけるべきポイントがあります。場合によっては大きなトラブルにつながるケースもあるため、.htaccessリダイレクトの設定時には注意が必要です。ここでは、リダイレクトをする際の注意点を6つ紹介します。
しっかりバックアップを取っておく
リダイレクトをする前に、しっかりバックアップを取っておくことが大切です。バックアップを取らないでいると、万が一リダイレクトの設定で失敗してしまったときに、取り返しのつかないことになるかもしれません。
もっとも考えられるトラブルとして、.htaccessファイルをアップロードする際に、誤った内容で上書きしてしまうケースが挙げられます。
このようなミスをしてしまうと、リダイレクトの設定後にサイトが正しく表示されなくなってしまいます。誤って上書きしてしまった場合にもすぐ修正できるよう、事前のバックアップが重要です。
なお、.htaccessファイルはサーバー内で複数の階層に設定できます。そのため内容は合っているけれど、アップロードする場所が誤っていたということが起こり得ます。.htaccessファイルをアップロードする場所についても確認が必要です。
リダイレクト前のバックアップ、.htaccessファイルのアップロード場所の確認は欠かせません。
無限ループになっていないか確認する
リダイレクトの設定をする際には、無限ループになっていないか確認が必要です。自動で別のページへ転送するリダイレクトでは、設定を誤ってしまうと転送を繰り返す無限ループとなってしまいます。無限ループになってしまう理由のひとつが、記述内容のミスです。
もし同じ.htaccessファイルおいて「XからYへ転送」「YからXへ転送」という記述をしてしまうと、転送先のページでまた転送が行なわれるという状態になります。これではいつまで経ってもリダイレクトが続いてしまい、2つのページ間で転送を繰り返すだけです。
転送が終わらないためページを見れないのはもちろんのこと、サーバーに負荷がかかりすぎてしまうのも問題です。リダイレクトの無限ループが原因で、サイト全体が重くなってしまう恐れがあります。
リダイレクトは最低限の回数で、抑えられるよう設定が必要です。リダイレクトの設定を行なったら、無限ループになっていないか必ず確認します。
WordPressに必要な記述の削除をする
WordPressを使用してサイトを運営している場合には、あらかじめ記述されている内容について注意が必要です。
WordPressにおいては、.htaccessファイルにおいて特定の記述が記載されています。それが「# BEGIN WordPress ~ END WordPress」までの記述です。こちらの記述は一見リダイレクト処理に必要な記述と似ていますが、まったく違った内容です。
リダイレクト設定をするにあたって、.htaccessファイルに記述された必要な部分を削除してしまうと、ページに不具合が生じてしまいます。サイトが正しく表示されなくなってしまう恐れもあるため、WordPressの必要な記述については削除や編集をしないよう注意が必要です。
リダイレクトの設定をするには、.htaccessファイルにリダイレクトの記述を行ないます。WordPressを使う際には、すでに記述されている内容を削除しないことが大切です。
meta refreshとJavaScriptを使わない
リダイレクト処理において、meta refreshまたはJavaScriptを使う方法もあります。しかしこの2つについては、リダイレクトを行なう上でおすすめできない方法です。
まずmeta refreshですが、こちらはサーバーではなくHTMLの記述でリダイレクトができます。しかしこの方法では、Googleの評価を引き継ぐことができません。
また、すべてのブラウザで対応しているわけではないため、リダイレクトの適切な方法とは言い難いです。JavaScriptを使用したリダイレクトであれば、Googleの評価を引き継ぐことができます。しかしJavaScriptを実行するためには、転送前のページはずっと残しておく必要があります。
JavaScriptを使用することで、アクセス解析に不具合が出る恐れもあるため、こちらもおすすめできません。リダイレクトをするのであれば、検索エンジンの評価・ブラウザの表示などに問題のない.htaccessファイルが最適です。
301リダイレクトは解除しない
永久的な転送に必要な301リダイレクトですが、こちらは一定以上の期間が経過したとしても解除するのは危険です。301リダイレクトは解除せず、ずっと残し続けておく必要があります。
301リダイレクトを解除してしまうと、検索エンジンが転送前と転送後のページを、独立したページと認識するようになってしまいます。こちらはリダイレクトが解除されたことにより、両者のページにおける関係性が消えてしまうためです。結果として、転送前のページで獲得した評価を引き継げなくなってしまいます。
またリダイレクトを解除してしまうと、転送前のページをブックマークやリンクしていた場合にうまくアクセスできなくなります。正しくアクセスができなければ、集客やその先のアクションの獲得もできません。
このように転送前のページを利用したアクセスができなくなるのも問題です。301リダイレクトは、一度設定した後は解除しないでそのまま保ち続けることが原則です。
適切なリダイレクト先を指定する
リダイレクトを設定する際には、転送先のページにも注意が必要です。
たとえばリダイレクト先として指定されたページがトップページのみの場合、特定のページを閲覧したかったユーザーにとって手間やストレスとなります。リダイレクト先が適切でなかったという理由で、サイトを離脱してしまう恐れが考えられます。
またリダイレクトにおける転送前と転送後のページには、適切な関係性が必要です。もし両ページのテーマが違うものだった場合、検索エンジンから引き継ぐ評価が適切でないことが起こり得ます。適切なページへリダイレクトするためには、細かい設定が必要です。
また正しく設定されているか、検証を行なうにもある程度時間がかかります。しかしユーザーの満足度や、検索エンジンからの正しい評価獲得のためにも、リダイレクト先は適切なものを指定することが大切です。
なおURLの変更に伴い、必要に応じてGoogle Search Consoleに設定しているURLの修正も行ないます。
301リダイレクトを確認する方法
.htaccessで301リダイレクトの設定を行なったら、適切に設定できているか確認が必要です。ここでは、301リダイレクトを確認する方法を紹介します。
もっとも手軽な方法は、専用のツール利用です。URLを入力するだけでリダイレクト設定が正常にできているかを、確認できるツールが存在します。こちらはotohuku.jpで公開されているリダイレクトチェックツールです。
URLの入力欄にリダイレクト前のページのURLを入力し、「チェックする」というボタンを押すだけでリダイレクトのチェックができます。301リダイレクトが問題なく設定できていれば、リダイレクトが設定できている旨と転送先のURLが表示されます。
リダイレクトに問題がある、302リダイレクトになっている場合は、その旨を伝えるメッセージが表示されます。
otohuku.jpは、リダイレクトの有無がシンプルに把握できるツールです。こちらはMface Toolsで公開されているリダイレクトチェックツールです。URLを入力するとリダイレクトの回数のほか、ホストやヘッダー情報なども表示されます。
アクセス経緯についてより詳細を確認したい場合に便利です。このようにツールを使って301リダイレクトが設定できているかを確認します。
301リダイレクトが利用できない場合
301リダイレクトはどのような場合でも利用できるとは限りません。サーバー環境によっては、.htaccessファイルでの301リダイレクトができないケースがあります。301リダイレクトが利用できない場合には、以下のような代替方法を取り入れます。
- meta refreshを利用する
- JavaScriptを利用する
- canonicalを利用する
- PHPなどのプログラムを利用する
meta refreshやJavaScriptは手軽ではありますが、検索エンジンの評価やアクセス解析などの不具合など不安が残る方法です。そのため.htaccessの代替案としては、あまりおすすめできません。
301リダイレクトが利用できない環境であれば、canonicalやPHPなどを利用するのが効果的です。canonicalとは属性タグの一種で、head部分に記述することでURLの正規化ができます。すなわち検索エンジンにおいて表示されるページを指定できるのです。
PHPはスクリプト言語の一種で、サーバーサイドでのWebページ作成に利用されます。プログラミング言語の中でも比較的使いやすい言語です。手軽さや効率などを考えると、.htaccessを利用した301リダイレクトの利用が好ましいです。
しかし何らかの理由により301リダイレクトが利用できない場合には、これらの方法で代用しましょう。
.htaccessリダイレクトのまとめ
.htaccessリダイレクトは、ユーザーを別のページへ自動で転送するために必要な設定です。サイトのメンテナンスやリニューアル、URLの変更など、これまでと別のページへ誘導が必要な場面があります。このような場合に自動で転送するために、.htaccessリダイレクトの設定が行なわれます。
リダイレクトの主なメリットは、古いURLからもアクセスを可能にする、Googleの評価を引き継げるなどです。リダイレクトには永久的な転送である301リダイレクトと、一時的なリダイレクトである302リダイレクトがあります。どちらの方法が適しているか事前に検討が必要です。
リダイレクトが必要なケースはさまざまですが、それぞれ記述内容は異なります。正しい記述を行なうことが、適切なリダイレクトを実現する条件のひとつです。失敗やトラブルを防ぐため、リダイレクトをする際の注意点もしっかり押さえる必要があります。
リダイレクトはWebサイト運営において重要な要素ですが、難しい部分が多く自社だけで進めるのは難しいことがあります。もし困ってしまった場合には無理に進めようとせず、外部パートナーに相談するのが効果的です。
ニュートラルワークスはWebサイトの運用や改善に関するサービスを展開しています。経験や実績も豊富であり、検索流入数が約34倍・獲得件数が約23倍まで増加した事例もあります。ニュートラルワークスでは.htaccessリダイレクトに関するサポートも可能です。
無料相談も受け付けておりますので、ぜひお気軽にお問い合わせください。
サイトの成果改善でお困りではないですか?
「サイトからの問い合わせを増やしたいが、どこを改善すべきか分からない…」そんなお悩みをお抱えの方、ニュートラルワークスにご相談ください。
弊社のサイト改善コンサルティングでは、サイトのどこに課題があるかを実績豊富なプロが診断し、ビジネスに直結する改善策をご提案します。
.htaccessのよくあるご質問
- .htaccessとは?
-
.htaccessとは、Webサイトにおいてアクセス制御といった、Webサーバーの設定を簡易的に行なえるファイルです。
- リダイレクトとは?
-
リダイレクトとは、ウェブサーバーが訪問者のブラウザに対して、別のURLへ自動的に遷移するよう指示する機能です。
- リダイレクトの種類は?
-
リダイレクトには301リダイレクトと、302リダイレクトという2種類が存在します。それぞれのリダイレクトの特徴を押さえることが、リダイレクトを使いこなすために必要です。