cman.jphtaccess作成
cman.jp cman.jp > よく使うhtaccess > 解説・自動作成 > 利用制限_UserAgent
広告
広告
広告
広告
広告
広告
広告

htaccessによるアクセス制限(スマホ,携帯,OS,ブラウザ)

ホームページへのアクセスには、アクセスしたパソコンのブラウザやOSの情報が含まれています。この情報をユーザーエージェント(User-Agent)と言います。

htaccessでユーザーエージェントを判定することで、特定のブラウザやOS、モバイル(スマートフォンや携帯電話、タブレットなど)からのみアクセス制御することが可能となります。
ただし、ユーザーエージェントは偽装も可能なため必ず正しい情報とは限りません。

広告

ユーザエージェントによるアクセス制限 作成

以下で特定URLからのアクセスを制限するhtaccessを作成することができます。

【入力の意味】
ユーザエージェントの内容が ① に該当(②の基準)する場合は、③ する

スマホ
携帯電話
OS
ブラウザ
その他
キーワード

ユーザエージェントに以下のキーワードを含む場合


大文字小文字

拒否/許可

「拒否/許可」以外の動きは、生成されたサンプルを書き換えて使用ください。

リダイレクトの場合は「リダイレクト(スマホ,OS,ブラウザ)」をご利用ください。

結果表示
ユーザーエージェントを最低1つは入力してください。

【注意】生成されたhtaccessは保証しておりません。必ず、動作確認を行ってからご利用ください。

ユーザエージェントによるアクセス制限 解説

特定OSやブラウザのアクセスのみを可能とする

構文例
SetEnvIf       User-Agent "Windows"         ua_os=windows
SetEnvIf       User-Agent "Mac.*OS"         ua_os=macos
SetEnvIfNoCase User-Agent "Safari"          ua_browser=safari
SetEnvIfNoCase User-Agent "(MSIE|Trident)"  ua_browser=ie
RewriteEngine On
RewriteCond %{ENV:ua_os} windows
RewriteCond %{ENV:ua_browser} ie
RewriteRule ^(.*)$ - [F,L]
上記は次を意味しています
「windows」または「InternetExplorer」からのアクセスのみを拒否する。
1.SetEnvIf / SetEnvIfNoCase
SetEnvIf User-Agent "Windows" ua_os=windows
+--①--+ +---②---+ +--③---+ +-----④-----+
①SetEnvIf
「SetEnvIf」・・・大文字と小文字が区別されます
「SetEnvIfCase」・・・大文字と小文字が区別されません
②判定する要素
OSやブラウザなどの情報はユーザエージェントに保管されているため「User-Agent」としています
③キーワード
判定要素②を検索(含まれているかなど)するキーワード
正規表現で指定します
④環境変数の設定
条件に一致する場合、環境変数に値を設定しています
サンプルでは「ua_os」に「windos」を設定しています(後で判断に使用)
環境変数の名前は既存と重複しなければなんでもかまいません。
2.RewriteEngine

Rewrite機能の使用(ON)と未使用(OFF)を指定します

3.RewriteCond
RewriteCond  %{ENV:ua_os}  windows  
+---①----+ +----②----+ +--③--+ +--④--+
②判定する要素

例は環境変数「ENV:ua_os」を判定対象としています。
ua_browser:事前にSetEnvIfで設定された環境変数

③キーワード

判定要素②を検索(含まれているかなど)するキーワード
正規表現で指定します。

④条件オプション

「OR」:次行のRewriteCondを「または(or)」で指定します(未指定は「かつ(and)」となります
「NC」:大文字と小文字を区別しません

4.RewriteRule
RewriteRule  ^(.*)$  -  [F,L]
+---①----+ +-②-+ ③ +-④-+

「RewriteCond」で該当する場合に、リダイレクトするURI情報を指定します

②リダイレクト元URI

正規表現でリダイレクト対象のURIを指定します。
例では、「^(.*)$」ですべてのアクセスを対象としています

③リダイレクト先URI

正規表現でリダイレクト先のURIを指定します。
例では、「-」で無効としています

④条件オプション

「F」:アクセス拒否(403エラー)を返すことを表します。
「L」:条件に該当する場合、以下のRewriteRuleを判定しない(終了)

広告
QrCode
このページのURL
スマートフォン・タブレット運営:株式会社シーマン