ホームページへのアクセスには、アクセスしたパソコンのブラウザやOSの情報が含まれています。この情報をユーザーエージェント(User-Agent)と言います。
htaccessでユーザーエージェントを判定することで、特定のブラウザやOS、モバイル(スマートフォンや携帯電話、タブレットなど)からのみアクセス制御することが可能となります。
ただし、ユーザーエージェントは偽装も可能なため必ず正しい情報とは限りません。
以下で特定URLからのアクセスを制限するhtaccessを作成することができます。
【入力の意味】 |
||
① | スマホ 携帯電話 |
|
---|---|---|
OS |
||
ブラウザ |
||
その他 キーワード |
ユーザエージェントに以下のキーワードを含む場合 |
|
② 大文字小文字 |
||
③ 拒否/許可 |
「拒否/許可」以外の動きは、生成されたサンプルを書き換えて使用ください。 リダイレクトの場合は「リダイレクト(スマホ,OS,ブラウザ)」をご利用ください。 |
【注意】生成されたhtaccessは保証しておりません。必ず、動作確認を行ってからご利用ください。
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]
SetEnvIf User-Agent "Windows" ua_os=windows
+--①--+ +---②---+ +--③---+ +-----④-----+
Rewrite機能の使用(ON)と未使用(OFF)を指定します
RewriteCond %{ENV:ua_os} windows
+---①----+ +----②----+ +--③--+ +--④--+
例は環境変数「ENV:ua_os」を判定対象としています。
ua_browser:事前にSetEnvIfで設定された環境変数
判定要素②を検索(含まれているかなど)するキーワード
正規表現で指定します。
「OR」:次行のRewriteCondを「または(or)」で指定します(未指定は「かつ(and)」となります
「NC」:大文字と小文字を区別しません
RewriteRule ^(.*)$ - [F,L]
+---①----+ +-②-+ ③ +-④-+
「RewriteCond」で該当する場合に、リダイレクトするURI情報を指定します
正規表現でリダイレクト対象のURIを指定します。
例では、「^(.*)$」ですべてのアクセスを対象としています
正規表現でリダイレクト先のURIを指定します。
例では、「-」で無効としています
「F」:アクセス拒否(403エラー)を返すことを表します。
「L」:条件に該当する場合、以下のRewriteRuleを判定しない(終了)