.htaccessとは、現在多くのwebサーバーで使われているApache(アパッチ)というソフトウェアを制御するファイルです。.htaccessファイルを使うとサーバーの設定の多くを上書きすることができ、URLの書き換えやキャッシュの制御、アクセス制限、basic認証など様々な設定を行うことができます。
この記事では、.htaccessファイルの便利な使い方とコードの書き方について簡単にまとめています。気になる項目がありましたら、リンクをクリックして続きをお読みください…
目次
.htaccessを使った301リダイレクトの設定/コードの書き方
まずは.htaccessの使い方として最も頻度の高い、301リダイレクト用コードの書き方から説明します。古いページAから新しいページBへリダイレクトを設定する場合、下のサンプルコードの色がついた部分をアレンジして、.htaccessファイルの一番下に貼り付ければOKです。
RewriteEngine On Redirect 301 /ページAのスラッグ/ https://yourwebsite.com/ページBのスラッグ/
ページ単位だけでなく、ディレクトリ単位やドメインごとの301リダイレクトも.htaccessで設定可能ですが、ここでは詳しい説明を省略します。もう1つだけ、例としてwebサイトを常時SSL化したいときのサンプルコードを添付しておきます。
RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301]
.htaccessを使ったBasic認証の設定/コードの書き方
次は.htaccessファイルを使ったBasic認証用のコードの書き方です。ベーシック認証の設定には、認証時に必要なIDとパスワードの情報が格納された.htpasswdファイルと、.htpasswdファイルが格納されているサーバーのルートディレクトリからのフルパスが必要になります。
まずはテキストエディタで.htpasswdファイルを作成します。Luft Toolsなどがベーシック認証用の無料パスワード暗号化ツールを提供しているので、生成されたテキストをそのまま.htpasswdファイルに貼り付け、サーバーにアップロードしてください。このとき作成した.htpasswdファイルは、DocumentRootより上に設置することが大切です。
ここまで終わったら、.htaccessファイルの作成です。下のコード内の赤字部分に.htpasswdファイルのある場所をフルパスで記載して、テキストファイルで保存します。
<Files ~ “^\.(htaccess|htpasswd)$”>
deny from all
</Files>
AuthUserFile /フルパス/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
order deny,allow
最後に、作成した.htaccessファイルを、認証を行いたいディレクトリ内に配置して完了です。
ちなみにベーシック認証は、レンタルサーバーの管理画面からも設定できます。コードをいじりたくない場合は、そちらからの設定がおすすめです。Xserverでは「ホームページ>>アクセス制御」で設定可能です。
.htaccessを使ったURL正規化の設定/コードの書き方
あなたのサイトがwwwのある・なし、あるいはhttpとhttpsのいずれでもアクセス可能な状態なら、人間にとっては同じでもGoogleにとっては別サイトの扱いになって重複コンテンツの原因となります。検索ランキングに悪影響が出ないように、.htaccessを使ってURLの正規化をしておきましょう。
例として、https、wwwなしのアドレスに正規化する場合のサンプルコードを下に記載しておきます。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} !^www.(.*)[NC]RewriteRule(.∗) https://www.%{HTTP_HOST}/$1
Webサイトのセキュリティーを高めるためのコードの書き方
.htaccessファイルは、あなたのwebサイトのセキュリティーを高めるためにもよく使われます。以下にいくつかサンプルを示しますので、ぜひ参考にしてみてください。
怪しいIPアドレスからのアクセスを制限する方法
海外からの怪しいIPアドレスからのアクセスに悩まされている場合、.htaccessに下のコードを書き込めば簡単にアクセス制限をかけられます。
<Limit GET POST>
order allow,deny
deny from ブロックしたいIPアドレス
allow from all
</Limit>
一部のIPアドレスからのアクセスのみ許可する方法
逆に、一部のIPアドレスからのアクセスのみ許可する場合、下のサンプルコードに対象となるIPアドレスを入力して、.htaccessファイルにコピペすればOKです。
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName “WordPress Admin Access Control”
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# whitelist Ryosuke’s IP address
allow from xx.xx.xx.xxx
# whitelist Koji’s IP address
allow from xx.xx.xx.xxx
</LIMIT>
ハッカーから.htaccessファイルを保護する方法
.htaccessファイルはハッカーにも狙われやすいファイルの1つです。下のコードを.htaccessファイルに加えると、承認していないユーザーからのアクセスを制限できます。
<files ~ “^.*\.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</files>
wp-config.phpファイルへのアクセスを制限する方法
データベースのユーザー名やパスワード等、重要な情報がアクセス情報が含まれているwp-config.phpファイル。このファイルへのアクセスを制限するためには、下のコードを.htaccessファイルに加えます。
<files wp-config.php>
order allow,deny
deny from all
</files>
Webサイトのディレクトリの閲覧を防ぐ方法
WordPressのセキュリティー専門家の多くは、ディレクトリの閲覧を無効にするよう推奨しています。ディレクトリの閲覧を有効にすると、ハッカー達はwebサイトのディレクトリとファイル構造を調べて、脆弱なファイルを見つけることができるのです。
Webサイトでディレクトリ閲覧を無効にするには、.htaccessファイルに次の一行を追加すればOKです。
Options -Indexes
.htaccessコードを自動生成する方法
ここまでご紹介した.htaccess用のコードを自動生成してくれる無料ツールもあります。例えば、ラッコツールズのhtaccessファイル生成ページでは、必要事項を入力するだけで、これまでにご紹介したコードをすべてまとめた1つのコードを自動で作ってくれます。できるだけ自分でコードを作りたくない場合は、これらのコード自動生成ツールを使用するのもおすすめです。
WordPressサイトの.htaccessファイル格納場所と編集場所
WordPressサイトの.htaccessファイルは、通常ルートディレクトリ直下に不可視ファイルとして配置されています。ファイルが見つからない場合は、FTPソフトで不可視ファイルを表示する設定にしてみましょう。
ファイルを開けると、# BEGIN …という記載がある行があります。WordPressで.htaccessファイルを編集するときには、この行より上にコードを記載します。場所を間違えると正しく機能しなくなることがあるので注意しましょう。
.htaccessの編集前には必ずデータのバックアップをとりましょう
最後に大事なことを1つ。.htaccessファイルは非常に重要なファイルで、ちょっと間違うだけでサイトが動かなくなってしまったりする危険性があります。.htaccessファイルの編集前には、何が起こってもいいように必ずバックアップを取っておくようにしましょう。
大堀 僚介(Ohori Ryosuke)
AWAI認定コピーライター
SEO contents institute認定コピーライター
何事も“超一流の専門家から学ぶ”をポリシーとしており、コピーライティング業界で世界最高の権威である全米コピーライター協会(AWAI)でライティングの基礎を習得後、SEOコピーライティングのパイオニアHeather-Lloyd Martin、コンテンツマーケティングの世界的第一人者Brian ClarkにWebコピーライティングを学ぶ。
さらにAWAIでビジネス用Webサイト作成スキルを習得、知識ゼロの状態から自社サイトSuper Clear Contentsを立ち上げる。その経験とインターネット業界の動向をふまえて、個人事業主や副業サラリーマンに向けて最新のビジネス用Webサイト構築方法を提供している。