LoginSignup
3
3

More than 5 years have passed since last update.

RelativeURL プラグイン

Posted at

これは Movable Type Advent Calendar 2016 24日目の記事です。
(諸事情により公開が間に合いませんでした。申し訳ございません。)

はじめに

今年注目されたキーワードの一つに、常時SSL化(AOSSL)がありましたね。Let's Encrypt の登場により、ドメイン認証型の SSL証明書の取得がより容易になったことや、Googleが推奨したこともあり、この流れは続いていくのでしょう。
システム構成についても、ELBにSSL証明書を導入することで、各ウェブサーバーに証明書を導入せずに運用するといったこともでき、目的に応じて柔軟に構成できるようになってきています。

常時SSL化しなくても、Movable Typeが導入されたサーバーでコンテンツを出力し、それをFTPで別サーバーに転送ていて運用したいというケースもあります。

こういった環境では、プロトコルを含めた絶対URIではないことが求められたりします。

3つの相対参照

RFC3986によると、URIの相対参照(Relative Reference)には、以下の3つがあります。

  • ネットワークパス参照: // から始まる相対参照。GoogleのHTML/CSSスタイルガイドで使われていますね。
  • 絶対パス参照: / から始まる相対参照。
  • 相対パス参照: スラッシュ文字をもっては始まらない相対参照。

Movable Typeが出力するコンテンツにおいて、絶対パス参照で記述したい場合、以下のようにテンプレートを記述したりします。

<mt:Unless name="aossl" regex_replace="/https?:\/\/www\.example\.com/g","">
....
</mt:Unless>

この方法では、一括で変換できるのですが、テキスト中のURLも変換してしまうため、注意が必要となります。
今回ご紹介するMovable Typeプラグインは、Movable Typeテンプレートタグで出力されたURIを絶対パス参照に変換するものです。

インストール方法

https://github.com/yagishita/mt-plugin-relativeurl からダウンロードしてお使いください。MITライセンスです。

利用方法(1)

<mt:EntryPermalink> などの変数タグの値を絶対パス参照に変換します。

<mt:EntryPermalink relative_url=“1”>

利用方法(2)

HTMLタグのhref属性とsrc属性で指定するドメインがウェブサイト・ブログのそれと一致する場合は絶対パス参照に変換します。一致しない場合はネットワークパス参照に変換します。

<mt:Unless name="aossl" relative_url="2">
....
</mt:Unless>

車輪の再発明的ですが、よろしければご利用ください。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3