.htaccess

Apacheで、ディレクトリ毎に設定を変えたい場合、httpd.confを修正する方法とは別に、ディレクトリごとに".htaccess"ファイルを置いて、そこに設定を書くという方法もある。

認証、承認、アクセス制御 - Apache HTTP サーバ バージョン 2.4
Apache チュートリアル: .htaccess ファイル - Apache HTTP サーバ バージョン 2.4

ということで、

$ cd /var/www/html/
$ mkdir access_test
$ cd access_test/
$ pwd
/var/www/html/access_test
$ mkdir access_test1
$ ls
access_test1
$ cd access_test1/
$ pwd
/var/www/html/access_test/access_test1
$

まず、access_test1という検証ディレクトリを作成。

$ vi access1.html
$ cat access1.html
<html>
  <head>
    <title>.htaccess</title>
  </head>
  <body>
    <a href="http://bgstation0.com/">B.G-STATION</a>
  </body>
</html>
$

そこに、access1.hmtlという簡単なページを作っておく。

この時点ではまだアクセス可
この時点ではまだアクセス可

この時点ではまだアクセス可。

$ vi .htaccess
$ cat .htaccess
Order allow,deny
Allow from none
Deny from all

$

ここに.htaccessを作成し、"Deny from all"で、すべてのIPからの接続を拒否するように設定。

$ sudo service httpd restart
Redirecting to /bin/systemctl restart  httpd.service
$

Apacheを再起動。

あれ?アクセスできちゃう
あれ?アクセスできちゃう

あれ?アクセスできちゃう。
そう、これだけじゃ.htaccessは反映されない。