CocoonでAMPをやめるときのリダイレクトが効かない。動いたコード紹介
CocoonのAMPをやめる方法
基本的なやり方は公式、
を見ればOKです。
問題は、AMPページを削除したあとに、
ある程度、AMPのページURLにアクセスが来ると見込まれることです。
そのアクセスもったいない
とか
「AMPないよ」と早くGoogleに知らせよう
という目的で301リダイレクトなる設定します。
AMPのURLにアクセスが来たら、非AMPのページへ転送する設定です。
CocoonのAMPをやめる際のリダイレクト失敗
サーバー上にある.htaccessというファイルへ、
コードを追記することでリダイレクトできます。
このコードをググったのですが、自サイトの場合、
すべてトップページにリダイレクトされてしまう現象が発生。
(記事AのAMPページへのアクセスは、
非AMPの記事Aへリダイレクトされてほしい)
自サイトのURLの末尾を見ると、
・トップページ:?amp=1
・各記事:&=1
となってまして、多分これがあやしい。
記事URLを
「domain.com/name/」
とかでなく、
「domain.com/?p=100」
とかにしてるとこうなる?ような気がしました。
が、確認していません。
CocoonのAMPをやめる際のリダイレクトコード
ともあれ自分の環境で動いたコードが
#discontinue AMP Redirect
RewriteCond %{QUERY_STRING} (^|&)p=(\d+)&=1(&|$)
RewriteRule ^$ https://yourdomain.com/?p=%2 [R=301,L]
RewriteCond %{QUERY_STRING} (^|&)amp=1(&|$)
RewriteCond %{QUERY_STRING} !p=([\d]+)&=1
RewriteRule ^$ https://yourdomain.com/? [R=301,L]
です。
AIを詰めまくって出力させました。
上段は、各ページのリダイレクト。
下段は、トップページのリダイレクト
と分かれています。
下段の2行目は
「各ページはトップにリダイレクトさせない」
という意味の行で、これがないとやはり
すべてトップへリダイレクトされます。
この記事が気に入ったらサポートをしてみませんか?