.htaccessとは 何ができるの?設置場所や注意点、活用方法を併せて紹介!
.htaccess(エイチティーアクセス)について、その活用方法についての解説、使用可能条件、具体的な作成方法についても解説いたします。
2022/7/15
公開日:2022/7/29
最終更新日:2022/7/29
ホームページの引っ越しやURLの統一で利用する.htaccess(エイチティーアクセス)。
本記事では.htaccessを使った様々なリダイレクト方法をその記述と共にご紹介してまいります。
なお、ホームページ作成をご検討なら、Wepageをご検討ください。
ホームページやブログを配信するサーバーの設定をする際に、ファイルの一覧表示で、拡張子が.htaccessとなっているファイルを目にすることがあります。
また、Webサーバーの設定に関する記事を見ている方も、一度は目にしていることがあるのではないでしょうか。
この .htaccessはWebサーバーを制御する機能を持ったファイルの1つで、「ドット・エイチティアクセス」と読みます。
.htaccessは、メモ帳などのテキストエディターで開くことができるテキストファイルで、Webサーバーの機能に関する命令文が記載されたテキストファイルです。
このファイルを、Webサーバーが管理するディレクトリ(フォルダー)に配置することで、パスワードを要求する認証画面の表示や、IPアドレスやドメイン名を指定したアクセス制限、URLのリダイレクトなど様々な制御を実行することができます。
手軽にWebサーバーの制御ができる .htaccessですが、利用するには2つの条件が必要です。
1つ目の条件は .htaccessとして利用するファイルの名前は「.htaccess」のみが使えます。
例えば「a.htaccess」、「home.htaccess」など「.htaccess」以外の名前にした場合、記載されている命令文は実行されません。
また、ファイル名が固定なので1つのディレクトリに対して複数の .htaccessを保存することができません。
2つ目の条件は、利用するWebサーバーにApacheがインストールされている必要があります。
レンタルやホスティングで可動しているサーバーは、ほとんどの場合WebサーバーとしてApache が設定されていますが、他のWebサーバー(例えばMicrosoft IISなど)が設定されている場合には .htaccess を利用することができません。
また、Apacheがインストールされている場合でも .htaccessの設置や変更をユーザーに許可していない場合があります。
他の代替機能を提供している場合もありますが、詳細な設定をするのが難しい場合があるので .htaccessを使う場合には、事前に利用するサーバーの仕様を確認しておく必要があります。
.htaccessで最も利用される機能はリダイレクトです。
リダイレクトはブラウザーから要求されたURLを別のURLに変換する機能で、自動転送と呼ばれています。
例えば、ホームページを別のサイトに引っ越しした際にURLの変更をした場合に、ブックマークしていた利用者や、他のページのリンク先からアクセスが途切れてしまい、引っ越し先のホームページが表示されなくなってしまう可能性があります。
その際に、リダイレクトを利用することで、ブックマークやリンク先から新しいホームページに転送してくれるため、安全にユーザーを誘導することが可能です。
また、検索エンジンへの対応を引き継ぐオプションを追加することでサイトの評価に影響を与えずにURLの転送を行うメリットがあります。
ホームページのリニューアルを検討されている方には、引っ越しをする際のSEO対策として重要なポイントになります。
リダイレクトを利用することで、サイトのURLを統一して管理することができるため、次のようなメリットがあります。
主に検索エンジンへの対策(SEO)としてのメリットが多いですが、URLを統一化して運用することで、PVなどアクセス解析をする際にも役立ちます。
.htaccessでは、4種類のステータスコード(301/302/303/307)を使って次のようなリダイレクトに関する制御ができます。
ほとんどの場合、リダイレクトでは301と302のステータスコードを使います。
ステータスコード | 内容 |
301 |
恒久的に別のURLにリダイレクトする場合。
転送前のURLは今後利用されず、転送後のURLを利用するケース。(リニューアルなどでURLが変更になる場合など) |
302 |
一時的に別のURLにリダイレクトする場合。
転送前のURLは今後も利用され、転送後のURLが一時的なケース(サーバーの障害などでエラーページに転送する場合や、パソコンやスマホ向けなど条件に応じてURLを使い分ける場合など) |
303 |
フォーム情報付きのURLをGETメソッドに変換してリダイレクトする場合。
転送後のURLにフォーム情報をGETメソッドとして受け渡したいケース(問い合わせやアンケートなど情報を取得する場合など) |
307 |
フォーム情報付きのURLのメソッドを維持した状態でリダイレクトする場合。
転送後のURLにフォーム情報を、そのまま受け渡したいケース(問い合わせやアンケートなど情報を取得する場合など) |
Googleなどの検索エンジンが、使われなくなったURLの評価を停止する期間は明確になっていませんが、1年くらいの期間を想定しておく必要があります。
そのため、リダイレクトを使ってURLの転送を検討する場合には、継続期間の目安として最低1年で考えることになります。
ただし、SEO対策を行っているホームページをリニューアルなどでURLを変更した場合、ブックマークやリンク先からの流入減少を防止するために、リダイレクトの解除をすることはなく半永久的にリダイレクトしているケースがほとんどです。
ホームページの引っ越しを行い、その際にドメイン名を変更した場合(URLのドメイン名以外に変更が無い場合)には .htaccessに次のような記載を行います。
ドメイン名以下のディレクトリ(フォルダー)にアクセス(例 www.sample.com/dir/page.html )された場合でも、新しいドメイン名を含んだディレクトリ(例 www.example.net/dir/page.html )にリダイレクトされます。
コンテンツを保存しているディレクトリを変更した場合(URLの途中部分を変更する場合)には .htaccess に次のような記載を行います。
コンテンツを保存しているファイル名を変更した場合(URLの最後を変更する場合)には .htaccessに次のような記載を行います。
コンテンツを保存しているドメイン名やディレクトリ名、ファイル名を変更する場合(URLすべてを変更する場合)には .htaccess に次のような記載を行います。
一部のディレクトリをリダイレクトの対象から除外する場合には .htaccess に次のような記載を行います。
リダイレクト機能を利用することで、Googleなどの検索エンジンに関する評価(SEO)に影響を与えることができます。
SEOではサイト内のコンテンツ重複(異なるURLで同じコンテンツが表示される場合など)で評価に影響が出るため、表示されるコンテンツに対するURLを統一しておくことが重要になります。
ホームページを表示する際に「https://www.sample.com/」でも
「https://sample.com/」でもアクセスできる設定の場合、ユーザーに対しての使い勝手としてはメリットがあります。
しかし検索エンジン側から見た場合に別のURLで同じコンテンツを配信していると判断されてしまい、サイトの評価が下がるデメリットになります。
次のように .htaccessを利用して「https://www.sample.com/」にリダイレクトを行い、URLを統一化することで検索エンジンに対する対策を行うことができます。
サブドメインへのリダイレクトとは逆に、URLのドメイン名部分を「sample.com」に統一する場合には、次のように .htaccessの記載を行います。
Webサーバーにはデフォルトページ(ファイル名を省略してアクセスされた場合に表示される既定値)の設定があります。
例えば、デフォルトページにindex.htmlが設定されている場合、次のようなURLを使ってアクセスした場合、ブラウザーには同じページが表示されます。
ドメイン名と同様に、ユーザーにとってデメリットはありませんが、検索エンジンから見た場合に別のURLとして判断されます。
例えば、次のような記載をすることで、URLの末尾をすべて統一した形でアクセスするようになります。
今日広く使われるようになった、サーバー証明書を使った接続(常時SSL)を導入した場合に、従来の接続(http://)とSSLを使った接続(https://)の混在も、重複コンテンツの対象となり注意が必要です。
次のような記載を行うことで、サイトへのアクセスをすべてSSL接続(https://)に統一することができます。
ここまで検索エンジンの評価を引き継ぐ(サイトの評価を下げない)リダイレクトの手法を紹介してきましたが、転送先のURLに評価を無効にしてリダイレクトすることもできます。
2回に分けてリダイレクトを行い、1回目のリダイレクト先で検索エンジンをブロックしてから2回目のリダイレクトで本来の転送先を指定します。
具体的には次のような方法でリダイレクトを行います。
サイトにアクセスするデバイス(パソコンやタブレット、スマートフォンなど)に対応したコンテンツを別のURLで用意している場合に、参照先のデバイスの種類に応じて別のURLにリダイレクトできます。
例えば、iPhoneやAndroid端末などスマートフォン向けのブラウザーでアクセスされた場合に、「/s/」ディレクトリ(フォルダー)にリダイレクトする場合には次のように記載を行います。
スマートフォンのブラウザーでサイトにアクセスした場合にリダイレクトが発生します。
サーバーに作成した .htaccessを配置する前にサイト全体のバックアップをしておくことが重要です。
アップロードしたファイルに間違いがあった場合や、配置する場所を間違えた場合に、サイトに不具合が発生して、表示されないなど不測の事態に陥るリスクがあります。
万一、不具合が発生した場合でもバックアップがある場合にはすぐに元に戻すことができるため、エラーによるダウンタイムを短くすることができます。
また .htaccessは、サーバー内の複数のディレクトリ(フォルダー)に同じ名前のファイルを配置することが多いため、アップロード時の間違いが発生しやすい作業です。
作業中に想定外のエラーや不具合が発生した場合に備えて、バックアップを用意しておくことは重要です。
リダイレクトの設定で特徴的な不具合に「無限ループ」があります。
例えば、次の例のように「a.htmlからb.htmlへのリダイレクト」と「b.htmlからa.htmlへのリダイレクト」を同時に設定した .htaccessを配置した場合、サイト内でリダイレクトが繰り返される「無限ループ」が発生します。
最終的に利用者のブラウザーにはエラー画面が表示されますが、サーバー内部では繰り返される処理の負荷でサイト全体に影響を与える場合があります。
例では分かりやすく無限ループになる設定を記載していますが、他にも無限ループになるケースは多く考えられるため、ファイルをアップロードする前に事前に十分な確認を行う必要があります。
ブログやホームページにWordPressを利用している場合には既に.htaccess作成され、以下のよう #BEGIN WordPressから#END WordPressに囲んだ部分をWordPressが利用しています。
.htaccessの設定を行う場合に、新しく.htaccessを上書き保存してしまうとWordPressが正常に動作しなくなる可能性があるため注意が必要です。
また、追加で編集する場合には、#BEGIN WordPress~#END WordPress よりも下の行に記載を行う必要があります。
.htaccessを利用した、リダイレクト処理の他にも HTMLのmetaタグを使う場合や、JavaScriptをページに埋め込んでリダイレクトを行う方法があります。
いずれの場合も別のURLに転送する処理が実行されますが、検索エンジンの評価を引き継いで転送されないため、意図的に検索エンジンに関する影響を考慮しない場合を除いて .htaccess を使ったリダイレクトにメリットがあります。
ステータスコードに301(恒久的な別のURLへのリダイレクト)を設定したリダイレクトをしている場合に、転送元のサイトを停止しない間はリダイレクト設定の削除は行わず継続する必要があります。
転送元のサイトが動作している状態で、リダイレクト設定を削除してしまうと、検索エンジンから別のサイトとして判断されてしまうため、それぞれのサイトで評価を下げてしまうデメリットがあります。
その他にも、転送元のURLがブックマークに保存されている場合や、別サイトにリンクが設定されている場合に、サイトへの流入ができなくなるリスクもあるため、リダイレクト設定を途中で削除や変更せずに運用するケースが一般的です。
リダイレクト処理では、転送される側のサイトにも注意が必要です。
例えば、リダイレクト先のサイトとURLの構造やページの名前を大幅に変更してしまった場合や、転送元と転送先のページの内容が大きく異なっている場合には、ユーザーにとっては期待していたページが表示されず、サイトから離脱しまうケースが考えられます。
同様に、検索エンジンに関してもリダイレクトする前のページと後で、内容が異なるという判断になってしまうため。サイトの評価に影響が出てしまう可能性も考えられます。
.htaccessを利用したリダイレクト自体は、簡単に記載して実行できますが、リダイレクト先で表示されるページの内容でユーザーや検索エンジンの評価を下げてしまう可能性があるため、設定内容については十分な検討を行う必要があります。
今回は、次のような .htaccessを使った様々なリダイレクト方法をご紹介しました。
URLを変換して別のURLに転送する機能だけでも、サイトで様々な手段として応用することができます。
リダイレクトする条件(特定のドメイン名やディレクトリ名、またはファイル名など)を含んだURLを指定して、別のURLに転送することができます。
検索エンジンに重複コンテンツと識別させないように別のサイトに転送する設定の他に、完全に検索エンジンの影響をブロックして転送することができます。
SSL導入時の接続方法(https://)の統一や、サブドメインやファイル名の有無など複数のURLで表示されるページを統合化して、検索エンジンの重複コンテンツに関する評価の対策ができます。