.htaccessとは 意味やできることWordPress利用時のファイルの場所

本記事は広告が含まれる場合があります WordPress

【.htaccessとは】意味やできること・WordPress上のファイルの場所

WordPressを利用している方をはじめ、Webサイトを運営している方は何かやりたいことを調べている際に「.htaccess」という名前のファイルについてなんだろうかと疑問に思った方もいると思います。

基本的に「.htaccess」を使う場面はあまり多くないため、いまいち意味がわからない方も多いのではないでしょうか。

今回は、初心者の方を対象に「.htaccess」とは何か?またどんな時に使うのか?をご紹介します。

この記事でわかること

  • .htaccessとは何か
  • .htaccessの代表的な役割
  • .htaccessの使い方

.htaccessはとても大事なファイルで間違うとサイトが正常に表示されなくなる場合もあります。FTPソフトやレンタルサーバーのファイルマネージャー等から.htaccessファイルを編集する場合は、必ずバックアップを取ってから自己責任で編集するようにしてください。

また、今回紹介している.htaccessファイルの記述内容はサンプルのため簡素な内容で記述しています。本番サイトに適用する場合は他にもいろいろな書き方が考えられ、そのまま利用できない場合もありますので、あくまで一例としてご参照ください。

.htaccessとは。意味と概要

.htaccessとは

.htaccessのサンプルファイル

.htaccess(ドット エイチ ティ アクセス)」とは、Webサーバーソフトウェア「Apache(アパッチ)」の設定ファイルの一つで、Webサイトへのアクセスの制御ができます。

.htaccessファイルは、htmlやphpファイルのようにWebサイトの見た目や機能に影響を与えるのではなく、http→httpsへリダイレクト(転送)したり、特定IPからのアクセスを拒否したりといったアクセスの制御を主に行うことができます。

  1. 常時SSL化
  2. リダイレクト
  3. IPアドレス制限
  4. Basic認証

通常多くのレンタルサーバーでは、Apache(アパッチ)が利用されているので.htaccessを利用できることが多いですが、サーバーによっては.htaccessが利用できないことや、一部の記述方法が利用不可である場合もあります。また、WixやJimdoなどのホームページ作成サービスでも基本的に.htaccessは利用できません。

.htaccessの設置場所について

WordPressでサイトを構築している場合.htaccessファイルは基本的に、WordPressをインストールしたディレクトリ直下(wp-adminやwp-contentディレクトリと同じ階層)に配置されています。

.htaccessファイルの確認方法は、FTPソフトを使う、もしくはレンタルサーバーのファイルマネージャーから確認することもできます。下記画像はFTPソフトを使った場合の確認方法です。

FTPソフトを利用した.htaccessファイルの確認

(関連記事)FTPとは?FTPの意味や仕組み・有名なFTPソフト

また FTPソフトを使わなくても、利用しているレンタルサーバーの管理画面にファイルマネージャーが設置されている場合は、管理画面からも.htaccessファイルを確認することができます。

下記画像は、エックスサーバーの管理画面です。オレンジの枠線の箇所を見ると「.htaccess編集」という項目があります。

エックスサーバー管理画面の.htaccess編集項目を示すスクリーンショット

WordPressインストール時に生成される.htaccessの例

WordPressをインストールすると、通常は、下記のような.htaccessファイルが生成されます。

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

※インストールするディレクトリや各々の環境によって、ご自身の.htaccessファイルは下記と異なる場合もあります。

.htaccessがない場合

FTPソフトを使って確認した方で.htaccessファイルが見当たらない場合は、「ドットファイルを表示」「不可視(隠し)ファイルを表示」などの項目を探してみてください。

ファイル名が「.(ドット)」で始まるファイルは、不可視(隠し)ファイルといい、Mac OSなどでそのままだと表示されてないことが多いですので表示する設定をする必要があります。

Cyberduckで隠しファイルを表示する例

.htaccessができること

.htaccessファイルを設定することにより、Webサイトを安全に運営するための常時SSL化、ドメイン移行やURL変更時に必要なリダイレクトや特定のユーザーのみ閲覧できるIPアドレス制限Basic認証などができるようになります。

.htaccessの代表的な役割

.htaccessを用いる代表的な役割の以下4つを例に、それぞれの意味や使い方を紹介していきます。

  1. 常時SSL化(リダイレクト)
  2. リダイレクト
  3. IPアドレス制限
  4. Basic認証

常時SSL化(リダイレクト)

WordPressを利用する方で.htaccessを始めてt触る機会が最も多いのが、常時SSL化の設定の時だと思います。

常時SSL化とは、Webサイトのどのページを閲覧しても「https://webst8.com/xxx」のように「https」から始まるURLになっていることを指します。常時SSL化されているかいないかの判断は、下記画像のようにブラウザのアドレスバーを見るとわかります。

SSL化されてないサイト

SSL化されていないサイト 保護されていない通信
SSL化されていないサイト 保護されていない通信

SSL化されているサイト

SSL化されたサイト https 鍵マークがついている

常時SSL化されていない「http」で始まるサイトを閲覧すると保護されていない通信云々と警告表示され、利用者に不安を与えてしまう恐れもありますので、最近では常時SSLの設定を行うことが一般的です。

【SSLとは】SSLの意味と必要性および仕組みや種類を解説

常時SSL化の.htaccessの記述例

下記は、常時SSLの設定の一例です。HTTPS通信でなければ、HTTPSにリダイレクト(転送)する設定をしています。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

なお、ここでは.htaccessの具体的な書き方・正規表現などの解説については、専門的になるため割愛しています。

リダイレクト

リダイレクトは、常時SSL化の時以外に、外部ドメイン含む別URLに転送する場合にも利用されます。

例えば運営しているサイトのドメインを新しいドメインに移行・引っ越した際にも利用します。

旧ドメインから新ドメインにリダイレクトをかけることで、サイト訪問者が古いアドレスにアクセスしても、自動的に新ドメインのサイトを閲覧することができます。

また、301リダイレクト(リダイレクトの種類。恒久的なリダレクト)設定をすることで、検索エンジンにも旧ドメインの評価を新しいドメインにある程度引き継がせることが可能です。

リダイレクトを設定した場合

ドメイン移行時やURL変更時には.htaccessファイルにリダイレクト設定を記述し、新ドメインに転送することでユーザーが間違って古いサイトに行ってしまう機会損失を防ぐことができます

リダイレクトを設定した場合

リダイレクトを設定しない場合

もし旧ドメイン→新ドメインにリダイレクト設定をしていない場合、ユーザーが移行前のドメインにアクセスしても古いサイト内容が表示されったり、エラーページが表示されてしまいます。

リダイレクトを設定しない場合
リダイレクトは、自サイト→自サイト(例えば、前述の常時SSLや、URLのwwwあり・なしを統一する(URLの正規化)などにも利用されます。

リダイレクトの.htaccessの記述例

下記は、リダイレクトする際の.htaccessの記述例です。

新しいドメイン(webst8.com)に転送する例

Redirect permanent / https://webst8.com/

※大雑把な書き方をしています。実際の引っ越し元・引っ越し先のディレクトリ構成など、ここのケースによって書き方は変わるためご注意ください。

wwwありに統一

RewriteEngine on
RewriteCond %{HTTP_HOST} ^webst8\.com$
RewriteRule ^(.*)$ https://www.webst8.com/$1 [R=301,L]

wwwなしに統一

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.webst8\.com$
RewriteRule ^(.*)$ https://webst8.com/$1 [R=301,L]

※実際には、%{HTTP_HOST}などの.htaccessであらかじめ用意されている変数名を利用して記述したり、常時SSLのリダイレクト設定と組み合わせて記述することもあります。ここでは簡単に記載しています。

ここまで簡単な記述例をご紹介しましたが、最近では.htaccessでやりたいことを自動で生成してくれるツールもあります。
リダイレクトやBasic認証など位置から記載するのは難しい場合、ツールも利用してあげると便利です。

参考)よく使うhtaccess作成(生成)

※利用の際は各ツールの利用規約ご確認の上ご利用ください。

WordPressのプラグイン

WordPressをご利用の場合、リダイレクトのプラグインやSSL化のプラグインを利用して実現している場合もあります。

WordPressプラグインRedirection
https://ja.wordpress.org/plugins/redirection/
Really Simple SSL
https://ja.wordpress.org/plugins/really-simple-ssl/

IPアドレス制限

IPアドレス制限とは、接続元のIPアドレスを利用してアクセスを制限する機能のことを指します。

例えば社内マニュアルページのアクセスを自社のIPアドレスのみに制限し、それ以外のIPアドレスからのアクセスをブロックするなどの設定ができます。

IPアドレス制限を示した図

ほかにも、海外からのIPアドレスをブロックし、日本国内からのアクセスのみ許可するなど様々な使い方があります。

IPアドレス制限の.htaccessの記述例

特定のIPアドレスからのアクセスを許可

order deny,allow
deny from all
allow from IPアドレス
#いったんすべて拒否して特定IPを許可

特定のIPアドレスからのアクセスをブロック

order allow,deny
allow from all
deny from IPアドレス
#いったんすべて許可して特定IPを拒否

Basic認証(基本認証)

Basic認証とは下記画像のように、IDやパスワードの入力を求められ、入力しないとWebサイトまたはページの閲覧ができない認証方法のことを指します。

Basic認証がかかっているWebサイトのスクリーンショット

Basic認証を利用する場面は、先程説明したIPアドレス制限と同様に特定メンバーだけの閲覧用サイト・ページに利用したりされることとが多いです。

Basic認証を利用する場合、「.htaccess」ファイルの他にもう一つ、「.htpasswd」というファイルが必要になるので頭の片隅にでも置いておきましょう。

Basic認証をかけたWebサイト及びページは、基本的に検索結果に表示(インデックス)されないのも特徴です。

Basic認証の.htaccessの記述例

AuthUserfile /ルートディレクトリからのフルパス/.htpasswd
AuthGroupfile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user

.htaccessの生成ツール

ここまで簡単な記述例をご紹介しましたが、最近では.htaccessでやりたいことを自動で生成してくれるツールもあります。
リダイレクトやBasic認証など位置から記載するのは難しい場合、ツールも利用してあげると便利です。

参考)よく使うhtaccess作成(生成)

まとめ

まとめです。今回は「.htaccess」とは何か?をはじめ、代表的な役割や使い方を紹介しました。

.htaccessのサンプルファイル

代表的な役割

  1. 常時SSL化
  2. リダイレクト
  3. IPアドレス制限
  4. Basic認証

今回.htaccessファイルの正規表現等の詳しい記述方法は専門的になるため解説していませんが、意味をわかっておくと何か必要になった際にもスムーズに理解・設定できるのではないかと思います。

.htaccessはとても大事なファイルです。FTPソフトやレンタルサーバーのファイルマネージャー等から.htaccessファイルを編集する場合は、必ずバックアップを取ってから編集するようにしましょう。

なお、まだレンタルサーバーを契約していない方向けに、おすすめのレンタルサーバーについては「人気レンタルサーバーおすすめ比較12選【選び方徹底ガイド】」で詳しく説明していますので、レンタルサーバーをお探しの方は合わせてご覧いただければと思います。

今回は以上になります。最後までご覧いただきありがとうございました。

-WordPress