&tag(Apache/アクセス制限); *目次 [#u9a4ec65] #contents *関連ページ [#l4d76817] *参考情報 [#re13e520] * アクセス制限 [#l19d72e7] **deny,allowに関する解説 [#u2460e21] ***参考情報 [#a0a5cb7e] -[[Apacheのアクセス制御をちゃんと理解する。 - こせきの技術日記:http://koseki.hatenablog.com/entry/20100913/ApacheAccessControl]] **deny,allowでAND条件を指定する [#u5449c49] ***参考情報 [#a240fdc5] -[[ApacheのAllow, Denyディレクティブでand条件したい - (ひ)メモ:http://d.hatena.ne.jp/hirose31/20081113/1226552753]] -[[Apacheでand条件でアクセス制限を試してみた · mechamogera/MyTips Wiki:https://github.com/mechamogera/MyTips/wiki/Apache%E3%81%A7and%E6%9D%A1%E4%BB%B6%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E9%99%90%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F]] -[[Apache2.4のSetEnvIfでand条件 - あるシステム管理者の日常:http://d.hatena.ne.jp/rougeref/20150717]] -[[.htaccessで、IPアドレスとユーザエージェントの2つを併用して… - 人力検索はてな:http://q.hatena.ne.jp/1285313252]] ***Apache 2.2でAND条件を使うための基本アイデア [#ufe1c045] -[[Apacheでand条件でアクセス制限を試してみた · mechamogera/MyTips Wiki:https://github.com/mechamogera/MyTips/wiki/Apache%E3%81%A7and%E6%9D%A1%E4%BB%B6%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E9%99%90%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F]]の例。 #pre{{ SetEnvIF Request_URI "^/test.html" ok_path SetEnvIF Accept "text/html" ok SetEnvIF ok_path "^$" !ok <VirtualHost *:80> DocumentRoot /var/www/html <Directory /var/www/html> Options FollowSymLinks AllowOverride None Order allow,deny Allow from env=ok </Directory> </VirtualHost> }} 解説 -StEnvIFは変数が指定された正規表現にマッチしたとき最後の変数を設定するという指定。[[mod_setenvif - Apache HTTP サーバ バージョン 2.2:https://httpd.apache.org/docs/2.2/ja/mod/mod_setenvif.html]]。以下のように処理が進む。 --「SetEnvIF Request_URI "^/test.html" ok_path」で、 Request_URIがtest.htmlにマッチするときok_pathが1に設定される。 --「SetEnvIF Accept "text/html" ok」で、Acceptヘッダーが"text/html"にマッチするとき、okが1に設定される。 --「SetEnvIF ok_path "^$" !ok」で、ok_pathが空白の場合は("^$"にマッチする場合は)、okをクリアする。 -最終的に、okが設定されているのは2番目の条件で「Acceptが"text/html"にマッチした場合」かつ3番目でクリアされなかった場合=1番目で「Request_URI "^/test.html" がマッチした場合」となる。 -よって「 Allow from env=ok」によって、アクセス許可のANDが達成されている。 *Tips [#l39739ab] **iPhone/iPadだけを許可する [#t43bb3f3] -[[スマートフォンのみを許可するhtaccessを作りたい - IPではな... - Yahoo!知恵袋:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1161615241]] #pre{{ SetEnvIf User-Agent "Android" dame1 SetEnvIf User-Agent "iPhone" dame2 SetEnvIf User-Agent "iPod" dame3 SetEnvIf User-Agent "iPad" dame4 SetEnvIf User-Agent "BlackBerry" dame5 order deny,allow deny from all allow from env=dame1 allow from env=dame2 allow from env=dame3 allow from env=dame4 allow from env=dame5 }}