- ベストアンサー
.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再起動
- みんなの回答 (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 ですが効果は同じです。
その他の回答 (1)
- auty
- ベストアンサー率58% (284/486)
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 としてみてください。
お礼
ありがとうございます。 .htaccessを以下の設定にして、httpdを再起動しましたが、192.168.12.xからアクセスできてしまいます。 order allow,deny allow from all deny from 192.168.12.0/255.255.255.0 ちなみに、.htaccessにはこの3行しか書いていないのですが、良いのでしょうか?
お礼
AllowOverride All を入れている箇所がNGでした。 <Directory "/var/www/html/xx">~~</Directory> を追記してそこに記述することで機能しました。 ありがとうございました。