zencartでTOPページのURLを正規化

17%の人がハマるコーヒーを飲んでハマらなかったYu-ichiです:neko:

サイトのURLが検索結果などで表示されたときに

  • 「https://www.netimpact.co.jp/」
  • 「http://netimpact.co.jp/」
  • 「https://www.netimpact.co.jp/index.html」

というように統一されていない状態になっていると、SEO的によろしくありません。

それを統一することを「正規化」と言います。:kaoemoji3:
過去にも紹介していましたね~。:kaomoji7:
簡単にできるURLの正規化方法

この過去に紹介した正規化の方法は
静的なHTMLサイトでは問題なくトップページに使うことができます。

ですが、zencartでこれをそのまま書いてしまうと大変な事になってしまいます。:ga-n:

記述するファイルは
/includes/templates/テンプレート/common/html_header.php
なのですが、そのまま

</p>
<p><link rel="canonical" href="http://www.●URL●/" /></p>
<p>

と書いてしまうと、全ページ同一URLに正規化されてしまいます。
これは大問題です。:kaomoji3:

そこで、TOPページのみこの記述を表示する方法をご紹介したいと思います。

zencartではphpでif文が記述出来る為、
これを利用してTOPページだけに表示する文法を作ります。

</p>
<p>< ?php<br />
$path = $_GET['main_page'];<br />
if( $path == "index" ){<br />
  $path = $_GET['cPath'];<br />
  if( $path == "" ){<br />
    echo '<link rel="canonical" href="http://www.●URL●/" />'. "\n";<br />
  }<br />
  else{<br />
  }<br />
}<br />
else{<br />
}<br />
?></p>
<p>

これを先程の「html_header.php」の適切な場所に書いてあげるだけです。

これでzencartでもTOPページのURLを正規化することができます。:wa-i:

一度お試しください。:kaomoji6:

コメントでご指摘いただき、一部修正しました。

</p>
<p>< ?php<br />
$path = $_GET['main_page'];<br />
if( $path == "index" ){<br />
  $path = $_GET['cPath'];<br />
  if( $path == "" ){<br />
    echo '<link rel="canonical" href="http://www.●URL●/" />'. "\n";<br />
  }<br />
}<br />
?></p>
<p>

ありがとうございます:neko:

トラックバックURL

3 thoughts on “zencartでTOPページのURLを正規化

  1. makocho より:

    おじゃましますm(_ _)m

    んー、どうでもいいことですけど
    else、必要ですか?(^-^;)

    <?php
    $path = $_GET['main_page'];
    if ( $path == "index" ){
    $path = $_GET['cPath'];
    if ( $path == "" ){
    echo '’ . “n”;
    }
    }
    ?>

    とかじゃダメですかね?(^-^;)

  2. makocho より:

    ありゃ。echo文がヘンなことになったぞ。

  3. Yu-ichi より:

    makocho様
    ご指摘コメントありがとうございます。 :neko:
    確かにこの場合elseは不要ですね :oops:

    修正版をアップしておきます。

    コメント欄ではHTMLタグ使用を一部許可しておりますので、
    そのままHTMlタグを書くとタグとして認識されてしまいます。
    なので、コードを書く際には &lt; と書くと < と表示されます。

makocho へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。