Apache | mod_rewriteでケータイ以外のアクセスをPC用ページにリダイレクトする

目次

はじめに

アクセス端末がケータイ(ドコモ、au、ソフトバンク)以外ならPC用ページにリダイレクトするという処理を、mod_rewriteを使うことで実現できます。

記述先は、httpd.confや.htaccessとなります。

.htaccessファイルでの記述例

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} !^(DoCoMo|UP|KDDI|SoftBank|Vodafone|J-PHONE|MOT-) [NC]
RewriteRule ^.*$ http://xxx.hoge/m.html [L]

補足説明

RewriteCondディレクティブ

RewriteRuleの条件を設定できる。複数の条件を設定することが可能。
※RewriteCondの前にRewrite Engine On と記述する必要ある。

  • 書式
    RewriteCond テストする変数 パターン [フラグ]フラグには[NC]もしくは[OR]を指定できます。フラグを二つ設定するにはカンマで区切ります。(例: [NC, OR])

[NC] - 大文字小文字を区別せずにパターンと一致するかどうかをテストします。
[OR] - いずれかのRewriteCondにあてはまる場合にRewriteRuleを適用します。[OR]を明示しない場合、自動でANDになります。

  • 変数には以下のようなものが使用できます。
HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT
REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
API_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ
HTTPS

参考サイト

以上

広告
デル株式会社