A .htaccessファイル(または分散設定ファイル)は、ウェブサイトの設定を制御および管理するために使用される強力なファイルです。メインのサーバー設定ファイルが変更されないように、すべての設定変更はディレクトリ単位で行われます。
.htaccessファイルの使用が推奨される場合
エラーページの読み込みやパスワードセキュリティの実装など、 .htaccessにはさまざまな用途があります。最も一般的な例をいくつか紹介します:
-
特定のURLまたはURLリストへのリダイレクトの追加。
-
サーバー上の特定のディレクトリに対するパスワード保護の有効化。
-
カスタマイズされたエラーページの読み込み。
-
HTTPの代わりにHTTPSを使用するようにサイトを強化。
-
特定のIPまたはドメインのブロック。
このガイドでは、以下の手順を説明します:.htaccessファイルを有効化、作成、および使用する.
前提条件
このチュートリアルを進めるには、以下が必要です:
-
最新バージョンのUbuntuがインストールされていること(システム上)。
-
ApacheウェブサーバーがUbuntuサーバーにインストールされていること。
-
Apache仮想ホストが設定されていること(ドメイン用)。
-
システムユーザーがsudo権限を持っていること。.
-
SSLで保護された仮想ホスト。
-
以下に従ってください:Ubuntu 18.04でLet's Encryptを使用してApacheを保護する(独自ドメインを使用してApacheを設定および保護する場合)。
-
または、以下を行うこともできます:Ubuntu 20.04でApache用の自己署名SSL証明書を作成する(テスト目的でApacheを使用する場合)。
-
|
注意:オンラインで独自ドメインの購入を検討できるドメインプロバイダーは多数あります。Namecheap, Freenom、およびBluehostなどは、その優れたサービスでよく知られている代表例です。 |
初期設定が完了したら、sudoユーザーとしてサーバーにログインし、開始しましょう。
ステップ1 — .htaccessファイルの有効化
デフォルトでは、 .htaccessファイルは無効になっています。まずApacheの設定を変更し、 .htaccessファイルを有効にする必要があります。
次のコマンドを使用して、 apache2/sites-available/your_domain.conf仮想ホストファイルをnanoまたはお好みのテキストエディタで開きます:
|
1 |
$ sudo nano /etc/apache2/sites-available/your_domain.conf |
「Apache web server」ガイドで説明したセットアップが完了していると仮定すると、次の設定詳細が表示されます:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
次に、以下の Directoryコンテンツを VirtualHostブロック内に追加します:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory> </VirtualHost> |
上記のコードブロックにおいて、次の行 AllowOverride All( Directoryセクションの下にあるもの)が最も重要です。このセクションにより、 .htaccessファイルの使用が可能になります。
その後、作業を保存してファイルを閉じます。もしnanoテキストエディタを使用している場合は、ショートカットCTRL + X,、Y、そしてENTERを押してファイルを閉じます。
Webサーバーを再起動する前に、設定を確認します:
|
1 |
$ sudo apache2ctl configtest |
すべてが正しく設定されていれば、出力として Syntax OKが表示されます。次に、サーバーを再起動してパスワードポリシーを適用します:
|
1 |
$ sudo systemctl restart apache2 |
Once the .htaccessファイルの設定が有効になったら、新しいファイルを作成します。
ステップ 2 — .htaccess ファイルの作成
Creating a .htaccessファイルの作成は簡単です。設定の変更が正しく実行されるように、Webルートディレクトリ(つまりソース)に移動して .htaccessファイルを配置する必要があります。
|
注意: .htaccessファイルを配置する際は注意してください。設定のわずかな誤りが、そのディレクトリおよびそれ以下のディレクトリに悪影響を及ぼす可能性があります。たとえば、同じApacheサーバー上で複数のWebサイトを運用する場合は、WebサイトにマッピングされたWebルートディレクトリに .htaccessファイルを配置します。 |
上記の前提条件に従っている場合、Webrootディレクトリは /var/www/my_domain/.htaccessになります。次に、以下を使用してWebサイト用の .htaccessファイルを作成します:
|
1 |
$ sudo nano /var/www/your_domain/.htaccess |
Once we have our .htaccessファイルの準備ができたら、いくつかのユースケースを見てみましょう。
ステップ 3 — .htaccess ファイルの一般的な用途

サイトで .htaccessページを使用することには、多くのメリットがあります。それぞれについて詳しく説明します:
-
URLのリダイレクト
URLリダイレクト(URL転送とも呼ばれます)は、ドメインの訪問者を別のURLにリダイレクトするために使用されるWebサーバーの機能です。URLリダイレクトのニーズには、 .htaccessを使用できます。転送元URLを転送先URLにマッピングするには、 .htaccessファイルに以下を追加します:
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^testdomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.testdomain.com [NC] RewriteRule ^(.*)$ http://demodomain.com/$1 [L,R=301,NC] |
-
カスタムエラーページの作成
A useful facet of the .htaccessファイルの便利な側面は、カスタムエラーページを作成できることです。一般的に、ユーザーがWebサイトに存在しないページにアクセスすると、画面にエラーメッセージが表示されます。代表的なcommon HTTP error codesには以下が含まれます:
-
400 Bad Request
-
401 Unauthorization
-
403 Forbidden
-
404 Not Found
-
500 Internal Server Error
-
502 Bad Gateway
-
503 Service Unavailable
デフォルトのサーバーページエラー「Page Not Found」とは異なり、 .htaccessファイルを使用することで、ユーザーに洗練された使いやすいブラウジング体験を提供できます。
-
セキュリティ認証の設定
Using the .htaccessファイルを使用して、セキュリティ認証を設定することもできます。これには、ユーザーを認証するための .htpasswdファイルを作成する必要があります。
セキュリティ目的でパスワードファイルを作成するには、 htpasswdコマンドを使用します。Apacheはこのパスワードファイルを使用して、検証済みのユーザーを認証します。 /etc/apache2ディレクトリに移動し、 .htpasswd.
という名前の機密ファイルを作成します。必要な .htpasswdファイルを作成するには、 -c オプションは、このパスワードセキュリティユーティリティを初めて使用するときに指定します。次に、コマンドの最後にユーザー名を指定して、ファイル内に新しいエントリをリストします。その後、ユーザー名 nick(このチュートリアルで使用)をあなたのユーザー名に置き換えます:
|
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd nick |
次に、ユーザーのパスワードの入力と確認を求められます。
引き続き このチュートリアル を読み進めて、Ubuntu 20.04上のApacheでパスワード認証をセットアップおよび設定する方法について詳しく学んでください。
-
MIMEタイプの追加
インターネット上で使用されるファイルの分類は、Multi-Purpose Internet Mail Extensions(MIME)タイプを使用すると簡単に行えます。ウェブサイトが特定のファイルを配信できないいくつかのシナリオでは、拡張子を追加することで解決します。次のコードを使用して、Apacheサーバーの .htaccess ファイルに多目的インターネットメール拡張(MIME)タイプを追加します:
|
1 |
AddType audio/mp4a-latm .m4a |
|
注意:このガイドでは、オーディオファイルのMIMEタイプを使用しています。アプリケーションとファイル拡張子を、対象のMIMEタイプに置き換えてください。さらに、バーチャルホストの設定と .htaccess ファイルの配置ディレクトリが AddType ディレクティブを使用できることを確認してください。そうしないと、500 Internal Server Error が発生します。 |
-
Server Side Includes(SSI)
SSIは、HTMLページに動的コンテンツを提供するディレクティブです。各ページを明示的に更新することなく、特定のデータで多数のページを更新するために使用されます。
HTMLファイルでは、Server Side Includes(SSI)はデフォルトで無効になっています。次のコードを .htaccess ファイルに追加してSSIを有効にします:
|
1 2 |
AddType text/html .shtml AddHandler server-parsed .shtml</pre> |
上記の行は、まず .shtml ファイルを検証します。その後、確認が .htaccess ファイルに送信され、サーバーがすべての .shtml ファイルを解析できるようになります。
または、XBitHack を使用して、 .html コンテンツを解析することができます。これにより、 .shtml 拡張子を1つずつ変更する必要がなくなります。次の行を .htaccess ファイルに追加して XbitHAck を使用し、Apacheにすべての .html ファイルをチェックするように要求します:
|
1 |
XBitHack on |
次に、ページが XBitHack を使用できるように権限を変更する必要があります。これを行うには、次の chmod コマンドを使用します:
|
1 |
$ chmod +x pagename.html |
-
IPアドレスの管理
セキュリティ上の目的で、特定のIPまたはIPアドレスの範囲からのサイトへのアクセスをブロックしたい場合があります。次のコード行を .htaccess ファイルに挿入して、対象のIPを制限します:
|
1 |
Order Deny, Allow Deny from A.A.A.A (where A.A.A.A is a specific IPv4 Address) |
複数のIPをブロックする場合は、別の行を使用します:
|
1 |
Order Deny Allow Deny from A.A.A.A (where A.A.A.A is a specific IPv4 Address) Deny from B.B.B.B (where B.B.B.B is a specific IPv4 Address) |
さらに、ドメインによるウェブサイトへのアクセスをブロックすることもできます。次のコード行を .htaccess ファイルに追加して、特定のドメインを制限します:
Order Deny, Allow Deny from www.blockdomain.com (ここで www.blockdomain.com は特定のドメインです)
.htaccessを使用する際の懸念事項
Adding a
.htaccess ファイルを追加することは、ウェブサイトを設定し、ユーザーフレンドリーにするための間違いなく賢明な方法です。しかし、設定の変更には他のコストも伴います。
.htaccess ファイルを使用すべきではないとされる、いくつかの説得力のある理由を確認してみましょう:
i. パフォーマンスの低下:サーバーがページディレクトリとその .htaccess ファイルをスキャンするたびに、ページがロードされます。その結果、速度とパフォーマンスの低下が大きな懸念事項になります。
ii. セキュリティ: .htaccess ファイルへのアクセス権を得ると、サーバー設定を完全に制御できるようになります。つまり、権限のないユーザーが .htaccess access to the .htaccess ファイルへのアクセスは、結果として潜在的なセキュリティリスクにつながります.
iii. アクセシビリティ: .htaccess ファイルは細心の注意を払って取り扱う必要があります。もし .htaccess ファイルにエラーがあると、ウェブサイト全体がダウンする可能性があります。
まとめ
このガイドでは、 .htaccess ファイルの有効化、作成、および使用方法について包括的に理解しました。また、どのような場合に .htaccess ファイルを使用すべきか、そのユースケースについても説明しました。 .htaccess ファイルを活用してウェブサイトを保護し、攻撃から守りましょう。ただし、この設定ファイルを使用する際には無視できないいくつかの落とし穴もあります。要するに、 .htaccess ファイルは、サーバーの使用状況やユーザーのアクセスニーズに応じて使用してください。
さらに、他にも以下のようなネットワーキングに関するチュートリアルを当社のブログでご覧いただけます。:
コメント
コメントはまだありません。最初のコメントを投稿しましょう。