.htaccessファイルを使用してApacheWebディレクトリリストを無効にする


Apache Webサーバーの保護は、特に新しいWebサイトをセットアップするときに、最も重要なタスクの1つです。

たとえば、Apacheサーバー(/ var/www/tecmintまたは/ var/www/html/tecmint)の下に「tecmint」という新しいWebサイトディレクトリを作成し、その中に「index.html」ファイルを配置するのを忘れた場合、ブラウザにhttp://www.example.com/tecmintと入力するだけで、すべてのWebサイト訪問者がすべての重要なファイルとフォルダの完全なリストを取得できることを知って驚かれるかもしれません。

この記事では、.htaccessファイルを使用してApacheWebサーバーのディレクトリリストを無効または防止する方法を説明します。

これは、index.htmlが存在しない場合に、訪問者にディレクトリリストが表示される方法です。

手始めに、.htaccess(またはハイパーテキストアクセス)は、Webサイトの所有者がサーバー環境変数や、Webサイトの機能を強化するための他の重要なオプションを制御できるようにするファイルです。

この重要なファイルの詳細については、次の記事を読んで、.htaccessメソッドを使用してApacheWebサーバーを保護してください。

  1. 25 Apache Htaccess Tricks to Secure Apache Web Server
  2. Password Protect Apache Web Directories Using .htaccess File

この簡単な方法を使用して、.htaccessファイルはWebサイトディレクトリツリーの任意のディレクトリまたはすべてのディレクトリに作成され、その中の最上位ディレクトリ、サブディレクトリ、およびファイルに機能を提供します。

まず、マスターApache構成ファイルでWebサイトの.htaccessファイルをアクティブ化します。

$ sudo vi /etc/apache2/apache2.conf    #On Debian/Ubuntu systems
$ sudo vi /etc/httpd/conf/httpd.conf   #On RHEL/CentOS systems

次に、 AllowOverride ディレクティブの値を AllowOverride All に設定する必要がある以下のセクションを探します。

<Directory /var/www/html/>
       Options Indexes FollowSymLinks
       AllowOverride All
</Directory>

ただし、既存の.htaccessファイルがある場合は、次のようにバックアップを作成します。/var/www/html/tecmint /(そしてこのディレクトリのリストを無効にしたい)にあると仮定します:

$ sudo cp /var/www/html/tecmint/.htaccess /var/www/html/tecmint/.htaccess.orig  

次に、お気に入りのエディターを使用して変更するために特定のディレクトリでそれを開く(または作成する)ことができ、以下の行を追加してApacheディレクトリリストをオフにすることができます。

Options -Indexes 

次に、ApacheWebサーバーを再起動します。

-------- On SystemD based systems -------- 
$ sudo systemctl restart apache2
$ sudo systemctl restart httpd

-------- On SysVInit based systems -------- 
$ sudo /etc/init.d/apache2 restart 
$ sudo /etc/init.d/httpd restart

ブラウザにhttp://www.example.com/tecmintと入力して結果を確認すると、次のようなメッセージが表示されます。

それで全部です!この記事では、.htaccessファイルを使用してApacheWebサーバーのディレクトリリストを無効にする方法について説明しました。また、今後の記事では、同じ目的のための他の2つの便利で簡単な方法についても説明します。

いつものように、このチュートリアルについてのあなたの考えを私たちに送るために以下のフィードバックフォームを利用してください。