• ベストアンサー

.htaccess によって指定IPのアクセス制限をしたい

以下の環境・設定で求める制限ができません。設定不備等ご指導いただければと思います。宜しくお願いいたします。 ●環境: ApacheV2.2.0・FeroraCore6・社内運用(否インターネット) documentroot からのシンボリックリンク先で制限したい ●設定: (1)アクセスを制限したいディレクトリと同階層に「.htaccess」を作成(192.168.12.xxからのアクセスを制限・以下内容) order allow,deny deny from all allow from 192.168.12 (2)httpd.conf の以下を編集 #<Directory /> # Options FollowSymLinks # AllowOverride None #</Directory> <Directory /> Options All AllowOverride All </Directory> (3)httpd再起動

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

より直近の<Directoryコンテナ内で AllowOverride None と記述されているため .htaccess が無効になっている<=に一票 試しに .htaccess に test と書いてアクセスしてみてください  test と言うステートメントは有りませんので  ・.htaccess が有効な場合=>500エラーになり error_logに Invalid command 'test  と記録されます  ・ .htaccessが無効な場合=>.htaccessが無視されるので何も変わりません で、無効だった場合ですが >documentroot からのシンボリックリンク先で シンボリックリンクの張り方にもよりますが DocumentRoot の物理的なパスを指定しているDirectoryコンテナに記述で大丈夫だと思いますよ httpd.conf のDocumentRoot "/var/www/html" でしたら <Directory "/var/www/html">~~</Directory> に AllowOverride All を入れてください (インターネット公開にする際にはまた変更した方が良いかも?) >ちなみに、.htaccessにはこの3行しか書いていないのですが、良いのでしょうか? 大丈夫でしょう。 私なら order allow,deny allow from all deny from 192.168.12.0/24 ですが効果は同じです。

indigo45kk
質問者

お礼

AllowOverride All を入れている箇所がNGでした。 <Directory "/var/www/html/xx">​~~</Directory> を追記してそこに記述することで機能しました。 ありがとうございました。

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

order allow,deny は、allowを先に評価し、次にdenyで上書きするということです。したがって deny from all allow from 192.168.12 では、すべて拒否されてしまいます。 ・ 192.168.12.xxからのアクセスのみを拒否する場合は、 order allow,deny allow from all deny from 192.168.12.0/255.255.255.0 ・ 192.168.12.xxからのアクセスのみを許可する場合は、 order deny,allow deny from all allow from 192.168.12.0/255.255.255.0 としてみてください。

indigo45kk
質問者

お礼

ありがとうございます。 .htaccessを以下の設定にして、httpdを再起動しましたが、192.168.12.xからアクセスできてしまいます。 order allow,deny allow from all deny from 192.168.12.0/255.255.255.0 ちなみに、.htaccessにはこの3行しか書いていないのですが、良いのでしょうか?

関連するQ&A