SOTA-JP.COM

書評、WordPress、アフィリエイト、米国株投資

スマホからのアクセスをAMPページに転送する方法。.htaccessの書き方。

投稿日:2018年5月25日 更新日:

.htaccess

スマホからのアクセスを自動的にAMPページに転送する方法をご紹介します。

.htaccessで振り分けします。

ここでは、AMPページのときはURLの末尾に?amp=1が付加されているケースを想定しています。

具体的に言うと、次のようなケースです。

通常ページ:https://sota-jp.com/posts/10651.html

AMPページ:https://sota-jp.com/posts/10651.html?amp=1

スマホからのアクセスをAMPページに転送するコード

実際のコードはこうなります。

RewriteEngine On

# botからのアクセスの場合はURLを書き換えない
RewriteCond %{HTTP_USER_AGENT} !(bot|Mediapartners-Google|APIs-Google) [NC]

# 対象のURLがファイルの場合はURLを書き換えない(画像とか)
RewriteCond %{REQUEST_FILENAME} !-f

# 対象のURLがwp-で始まる場合はURLを書き換えない(WordPressの管理画面)
RewriteCond %{REQUEST_FILENAME} !^wp-.*?

# クエリ文字列(?の後ろの文字)がamp=1の場合はURLを書き換えない
RewriteCond %{QUERY_STRING} !amp=1

# iPhone、Android、Windows Phoneからのアクセスの場合、書き換え対象とする
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]

# URLの末尾に?amp=1を追加する
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1?amp=1 [NE,QSA,R,L]

このコードを.htaccessに追記すると、スマホからのアクセスの振り分けが有効になります。

ちなみに、botかどうかの判別がわりと大雑把です。
USER_AGENTに”bot”、”Mediapartners-Google”、”APIs-Google”のいずれかが含まれている場合に、botからのアクセスと判断しています。

すべてのbotに対応できるわけではありませんが、少なくともGoogleのクローラーからのアクセスかどうかは判別できます。
ちなみに、GoogleのクローラーのUSER_AGENTは、こちらで確認できます。