ねこまぐろ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

PHPで指定日まで表示・非表示する

しょっぱい記述ですが、適当にサーバへ保存してて、いつも探してどうしようもないからブログにメモっておきます。

タグが使いやすいように、echoはシングルクオート('')で囲ってます。

<?php
$nenga2008 = date("Ym"); // Yが年mが月

if($nenga2008 == 200812){
echo''; // 2008年12月だと非表示
}
else{
echo'
それ以外だと表示
';
}
?>

年賀用が上記の記述。たぶん表示されるはず……。12月中は非表示で放置。

<?php
$nenga2008 = date("Ymd"); // がY年m月d日=2008年12月29日とか

if($nenga2008 == 20081229){ // ==の後に日付
echo'2008年12月29日だと表示'; //一日限定とかに出来ますよね。
}
else{
echo''; // それ以外だと非表示
}
?>

一日限定……エイプリルフールとかw

<?php
$nenga2008 = date("Ymd");

if($nenga2008 == 20081229){
echo'2008年12月29日だと表示';
}
elseif($nenga2008 == 20081230){
echo'2008年12月30日だと表示'; //elseifで増やせる。
}
else{
echo''; //それ以外だと非表示
}
?>

表示非表示は適当に。

スマートかはさておき動けばいいや ヽ(ゝω・)ノ

Posted at 2008-12-29 23:48 in tips » php

Categories
Archives
Tagging

Page 1 of 1: 1

スポンサーリンク

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