• MovableTypeでリンクを相対パスに|コンテンツならサイトロジック

    • 会社概要
    • サイトマップ
  • コンテンツならSITELOGIC.
    • コンテンツならサイトロジックTOP
    • ホームページ制作
    • WEBシステム
    • イラスト・デザイン
    • クリエイター紹介
    • お問い合わせ
      1. コンテンツならサイトロジックTOP
      2.  > WEBシステム
      3.  > MovableType
      4.  > MovableTypeでリンクを相対パスに

      MovableTypeでリンクを相対パスに

      MovableTypeはとても優れたCMSパッケージなのですが、昔、手探りで勉強しながらサイトを作っていたとき、どうしてもできなくて諦めたことのひとつが、MovableTypeが自動的に生成するリンクを相対パスにする、というものです。

      例えば、あるページから同じ階層に属するページへのリンクの場合、

      <a href="contents.html">コンテンツ</a>

      のように、ファイル名だけを指定したリンクにすることを「相対パス」といいます。

      また、上の階層であれば、

      <a href="../contents.html">コンテンツ</a>

      というように、「../」を付与する、といった具合ですね。

      これが、MovableTypeでリンクURLを吐き出そうとすると、

      <a href="http://www.sitelogic.jp/system/movabletype/contents.html">コンテンツ</a>

      と、「http://」から始まる絶対パスになってしまうのです。

      SEO対策を万全にするために

      もちろん、どちらでもリンクとしては同じ結果を産みますので、「どちらでも別に・・・」と、言ってしまうのは簡単なのですが、絶対パスは「外部へのリンク」が前提であり、相対パスは「サイト内へのリンク」という扱いですから、どちらが好ましいかは別として、SEO対策への要件から必ず、使い分ける必要に迫られるはずなのです。

      なにかテクニックやプラグインなどが出ているのではないか?と、ずいぶん探しまわったのですが、見つからず、結果として諦めた、という苦い思い出があります。

      MovableTypeで相対パスを実現する

      この相対パスでのリンクの生成を、MovableTypeで実現しました。

      とはいっても、ちょっとばかり変則的で煩雑な処理になりますが・・・。

      流れとしては、MovableTypeのテンプレートの中に、PHPのプログラムを書き込み、不要な部分を削除、あるいは置き換えるという処理になります。

      下記の例は、「カテゴリ別記事一覧」での使用を前提としたもの、すなわち同階層ページ以下へのリンクであるという条件でのソースになります。

      MovableTypeで相対パスを生成するソース(カテゴリページ限定)
      <?
      	$dom  = "http://www.sitelogic.jp";
      	$url  = $dom . $_SERVER['PHP_SELF'];
      	$url  = str_replace("index.html","",$url);
      ?>
      <$MTInclude module="ヘッダー"$>
      	 <ul>
      <MTEntries>
      		  <li><a href="<? echo str_replace($url,"","<$MTEntryPermaLink$>"); ?>"><$MTEntryTitle$></a></li>
      </MTEntries>
      	 </ul>
      <$MTInclude module="フッター"$>
      

      1行目から5行目までは、自ページのURLをはじき出すためのPHPプログラムです。

      2行目はドメイン名ということで固定の値を入れていますが、2行目は自分のページのパスをプログラムで取得しています。

      最初、思うような結果が出ないので不思議に思っていたのですが、「index.html」の記述が邪魔をしていたことに気づき、それを削除する処理を追加しました。

      なので、このプログラムを使う場合、カテゴリページは「/category/sub-category/index.html」で吐き出す必要があります。

      9行目のリンクを吐き出すための<$MTEntryPermaLink$>タグを囲って、<?~?>のPHPプログラムがありますが、これがリンクURLから余計な部分(ドメイン~パス)を空白に置き換えるための処理です。

      記事ページからカテゴリ一覧へ、など、上階層ページへのリンクについては、また別のプログラムにしてやる必要がありますが、この方法であれば、結果として相対パスでのリンク生成を実現できるわけですね。

      .html拡張子でPHPプログラムを実行

      最後になりましたが、PHPプログラムを使っていることが前提なのに、「.html」の拡張子を使っているので念のため補足。

      この例の場合、.htaccessで「.html」でもPHPプログラムを処理できるようにサーバー設定していることが前提になります。

      AddHandler x-httpd-php5 .php .phps .html

      この一文を入れたファイルを、「.htaccess」というファイル名で、ルートディレクトリに置いておくことで可能になります。

      1. MovableTypeとは?
      2. MovableTypeでリンクを相対パスに
      3. 次の記事はありません

      • ホームページ・イラスト・システム開発|お問い合わせはこちら
        お気軽にご相談ください
          • 例)info@sitelogic.jp

          • 例)山田太郎

        送信する

      新着記事一覧サイトロジックのノウハウを公開!

      サイトロジックでは、コンテンツ制作に関わるさまざまなノウハウを、惜しみなく公開しています。
      コンテンツ制作のご参考に、ぜひお役立てください。

      • インターネット成功の基準
      • MovableTypeでリンクを相対パスに
      • リンクのデザイン性について
      • SEO効果検証を公開
      • インデックス数を稼ぐ
      • MovableTypeとは?
      • イラストの役割
      • CSSを解除するJavascript
      • バックリンクの効果
      • 共通パーツをインクルード処理

      全21件の記事中最新の10件を表示 >> 続きを見る

      話題のキーワードでニュースを検索!
      • 吉野紗香
      • マイク・ケリー
      • 栗きんとん入り干し柿
      • 大屋夏南
      • ガスパン遊び
      • 芦田修正
      • 矢沢心
      • 岸部四郎
      • ドラゴン桜 円周率
      • トマトの木
      • 七里ヶ浜 シーラス
      • 三宅健
      • 広田レオナ
      • 博多ばってんラーメン
      • フェルトアート
      • 「さっぽろ雪まつり」が最初に開催された年
      • マーレカルモ
      • LOT165
      • ZIPPEI 声帯
      • 福岡都市高速
      • >> キーワードアクセスランキング

    ▲戻る

  • MovableTypeでリンクを相対パスに|コンテンツならサイトロジック
      • コンテンツならサイトロジックTOP
      • キーワードアクセスランキング
      • 会社概要
      • サイトマップ
      • お問い合わせ
      • CSSを解除
      • ホームページ制作
        • WEBコンサルティング
        • SEO対策
        • アクセス解析
      • WEBシステム
        • システム研究
        • PHPプログラム
        • Javascriptプログラム
        • movabletype
      • イラスト・デザイン
        • ホームページデザイン
        • イラストレーション
        • ロゴデザイン
        • FLASH
      • クリエイター紹介
    Copyright©2012 KCP Co.,Ltd. AllRights Reserved.