ねこまぐろBlog

ネットなどの備忘録なブログ。たまに創作ネタメモとか?

rel=canonical 用のPHPに手を入れる

Google Search Console からの通知見てたんですけど、送信したサイトマップのURLが登録されなかった、という事で詳細を見ていたら、以下のような感じになってた。

スラッシュの重複『//』、index.htmlの省略派でリダイレクト飛ばしてたのに効いてなかった『index.html』と?hogehogeってついちゃってる『.html?hogehoge』の3パターンでした。

<?php
$canonical = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
?>
<link rel="canonical" href="https://<?php print"$canonical"?>">

こんな感じでアクセスしたURLでやってて、シンプルに対応してたのが裏目に出てしまったので以下のように修正。

<?php
$canonical = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
$canonical = preg_replace("{//}","/",$canonical);
$canonical = preg_replace("{.html?(.*)}",".html",$canonical);
$canonical = preg_replace("{index.html}","",$canonical);
?>
<link rel="canonical" href="https://<?php print"$canonical"?>">

上手く動いて成功 ヾ(・ω・)ノ って今見ると1つ目と3つ目は $str_replace でもいいのか。あと「"{.html?(.*)}i"」の方が安心かねぇ。そしてGoogleの対応を待つ。

手打ち個人サイト増えるといいなぁ、という記事を増やしていきたいような。phpのおかげで楽してます。

ちなみにgoogleサイトマップは以下のサイトのを使ってます。移転されたのだろうか。

Posted at 2018-01-29 23:42 in tips » php

スポンサーリンク

Share botton

ブログランキング・にほんブログ村へ

Recent entries from same category

Navigation Link

Tag

Categories
Archives
Tagging
スポンサーリンク

2006年12月から計測のページビューカウンター。