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

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

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

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

リダイレクトの場合は「リダイレクト(モバイル)」をご利用ください。

広告

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

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

スマホ
携帯電話
スマートフォン
タブレット
携帯(ガラケー)
OS
Windows
MacOS,iOS
Android
Linux系OS
ゲームOS
携帯OS(ガラケー)
ブラウザ
IE
Chrome
Firefox
Safari
Opera
その他
キーワード

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


大文字小文字

拒否/許可

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

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

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

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

ユーザエージェントについては「ユーザエージェントとは?」をご確認ください。

特定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」からのアクセスのみを拒否する。

SetEnvIf
SetEnvIfNoCase

SetEnvIf User-Agent "Windows" ua_os=windows
+--①--+ +---②---+ +--③---+ +-----④-----+

①SetEnvIf
「SetEnvIf」・・・大文字と小文字が区別されます
「SetEnvIfCase」・・・大文字と小文字が区別されません
②判定する要素
OSやブラウザなどの情報はユーザエージェントに保管されているため「User-Agent」としています
③キーワード
判定要素②を検索(含まれているかなど)するキーワード
正規表現で指定します
④環境変数の設定
条件に一致する場合、環境変数に値を設定しています
サンプルでは「ua_os」に「windos」を設定しています(後で判断に使用)
環境変数の名前は既存と重複しなければなんでもかまいません。
RewriteEngine

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

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

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

③キーワード

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

④条件オプション

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

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

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

②リダイレクト元URI

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

③リダイレクト先URI

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

④条件オプション

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

ページTOP

ユーザエージェントによるアクセス制限 サンプル

以下のボタンでサンプルをご確認いただけます。

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