晴耕雨読

working in the fields on fine days and reading books on rainy days

Apacheでパスやファイルへのアクセス制限をする

Apacheでパスやファイルへのアクセス制限をするときに使う Directory, LocationMatch, FilesMatch について説明します。

/etc/httpd/conf/httpd.conf を編集するか、/etc/httpd/conf.d 直下に設定ファイル myrule.conf を作成します。

~]# vim /etc/httpd/conf.d/myrule.conf

特定のディレクトリ(サーバ上の絶対パス)へのアクセスを拒否するには、Directoryディレクティブを使用します。

<Directory "/var/www/html/phpmyadmin">
  Require all denied
</Directory>

特定のパスへのアクセスを拒否するには、LocationMatchディレクティブを使用します。

<LocationMatch ^/phpmyadmin/>
  order allow,deny
  deny from all
</LocationMatch>

特定のファイルへのアクセスを拒否するには、FilesMatchディレクティブを使用します。

<FilesMatch "^(wp-admin\.php|xmlrpc\.php)">
  order allow,deny
  allow from 192.168.0.1
  deny from all
</FilesMatch>

設定したらサービス再起動して、対象にアクセスできないこと (403 Forbidden) を確認してください。

~]# systemctl restart httpd

以上です。