Phize on the Web

SEO Strict URLsプラグインの設定と挙動 - MODx

オープンソースCMSのMODxでは、一つのドキュメントに対して非常に多くのURIでアクセスすることが可能ですが、SEO Strict URLsプラグインを導入することによって、これらのURIを一意化することができます。SEO Strict URLsプラグインには大きく分けて二つの機能があります。一つは、MODxが出力するドキュメント中にあるURIを設定に従って書き換える機能です。もう一つは、標準の状態でアクセスできる複数のURIにアクセスがあった場合に、設定に従って一意のURIに301リダイレクトする機能です。

SEO Strict URLsプラグイン導入のメリットは大きいですが、MODx本体のフレンドリーURLやその設定、.htaccessによるmod_rewrite等と組み合わせると複雑になりがちです。ここでは、SEO Strict URLsプラグインの設定とその挙動の一部をまとめています。

後述の表を見てわかるように、設定によってはSEO Strict URLsプラグインが直感的ではない挙動(バグを含む)をする場合があります。個人的には、URI構成を通常のサイト風にする方法 で紹介している設定が不具合が出にくく、管理もしやすいのでおすすめです。

ここでは、いくつかの不具合を修正したSEO Strict URLsプラグイン(Phize版)を前提としている。本家版を使用する場合には、ここで記載している挙動とは異なる可能性がある。

SEO Strict URLsプラグインの設定

SEO Strict URLsプラグインにはいくつかの設定項目があり、これらの設定によって、ドキュメント中のURIの書き換え機能やリダイレクト機能の挙動が変わります。

SEO Strict URLsプラグインのパラメータ
パラメータ名 説明
editDocLinks ドキュメント中のURIの書き換えに関する設定。「0」、空文字を指定すると、ドキュメント中のURIは書き換えない。それ以外を指定すると、ドキュメント中のURIも設定に従って書き換える。
makeFolders 子ドキュメントを持つフォルダドキュメントに関する設定。「0」、空文字を指定すると、通常のドキュメントと同様に扱われる。それ以外を指定すると、ディレクトリのように扱われる。
emptyFolders 子ドキュメントを持たないフォルダドキュメントに関する設定。「0」、空文字を指定すると、通常のドキュメントと同様に扱われる。それ以外を指定すると、ディレクトリのように扱われる。makeFoldersが「0」、空文字の場合には設定は無視される。
override 個別のドキュメントに関する設定。「0」、空文字を指定すると、全てのドキュメントはeditDocLinksmakeFolders、memptyFoldersの設定に従って扱われる。それ以外を指定すると、ドキュメントにテンプレート変数overrideTVが設定されている場合は、その設定に従って扱われる。
overrideTV 個別のドキュメントの設定に使用するテンプレート変数。overrideが「0」、空文字以外で、ドキュメントにこのテンプレート変数が設定されている場合のみ、ドキュメントのURIはこの設定に従って扱われる。

SEO Strict URLsプラグインの挙動

一般的と思われるフレンドリーURLの設定(次の表を参照)での運用を想定して、SEO Strict URLsプラグインによるURIの書き換え機能・リダイレクト機能の挙動の一部をまとめています。

フレンドリーURLの設定
設定名
フレンドリーURLの使用 Yes
フレンドリーエイリアス Yes
エイリアスパスを使用 Yes

以下が、上記のフレンドリーURLの設定に基づいたSEO Strict URLsプラグインの挙動をまとめた表です。

editDocLinks=0の場合はドキュメント中のURIは書き換えられないが、リダイレクトは下記の表の通り行われる。

editDocLinks=1、makeFolders=0、emptyFolders=0、または、1の場合

editDocLinks=1、makeFolders=0、emptyFolders=0、または、1の場合のSEO Strict URLsプラグインの挙動
エイリアス 接頭辞 接尾辞 フォルダ? 書き換え前 書き換え後 リダイレクト先
エイリアス 接頭辞 接尾辞 フォルダ? 書き換え前 書き換え後 リダイレクト先
alias なし なし No/Yes alias 同じ alias
alias/
.html No/Yes alias alias.html
alias/
alias.html
alias.html/
entry- なし No/Yes alias entry-alias
alias/
entry-alias
entry-alias/
.html No/Yes alias entry-alias.html
alias/
alias.html
alias.html/
entry-alias
entry-alias/
entry-alias.html
entry-alias.html/

editDocLinks=1、makeFolders=1、emptyFolders=0の場合

editDocLinks=1、makeFolders=1、emptyFolders=0の場合のSEO Strict URLsプラグインの挙動
エイリアス 接頭辞 接尾辞 フォルダ? 書き換え前 書き換え後 リダイレクト先
エイリアス 接頭辞 接尾辞 フォルダ? 書き換え前 書き換え後 リダイレクト先
alias なし なし No alias 同じ alias
alias/
Yes(子ドキュメントあり) alias alias/ alias/
alias/ 同じ
Yes(子ドキュメントなし) alias 同じ alias
alias/
.html No alias 同じ alias.html
alias/
alias.html
alias.html/
Yes(子ドキュメントあり) alias 同じ alias/
alias/
alias.html alias/
alias.html/
Yes(子ドキュメントなし) alias 同じ alias.html
alias/
alias.html
alias.html/
entry- なし No alias 同じ entry-alias
alias/
entry-alias
entry-alias/
Yes(子ドキュメントあり) alias alias/ alias/
alias/ 同じ
entry-alias
entry-alias/
Yes(子ドキュメントなし) alias 同じ entry-alias
alias/
entry-alias
entry-alias/
.html No alias 同じ entry-alias.html
alias/
alias.html
alias.html/
entry-alias
entry-alias/
entry-alias.html
entry-alias.html/
Yes(子ドキュメントあり) alias 同じ alias/
alias/
alias.html alias/
alias.html/
entry-alias 同じ
entry-alias/
entry-alias.html
entry-alias.html/
Yes(子ドキュメントなし) alias 同じ entry-alias.html
alias/
alias.html
alias.html/
entry-alias
entry-alias/
entry-alias.html
entry-alias.html/

editDocLinks=1、makeFolders=1、emptyFolders=1の場合

editDocLinks=1、makeFolders=1、emptyFolders=1の場合のSEO Strict URLsプラグインの挙動
エイリアス 接頭辞 接尾辞 フォルダ? 書き換え前 書き換え後 リダイレクト先
エイリアス 接頭辞 接尾辞 フォルダ? 書き換え前 書き換え後 リダイレクト先
alias なし なし No alias 同じ alias
alias/
Yes alias alias/ alias/
alias/ 同じ
.html No alias 同じ alias.html
alias/
alias.html
alias.html/
Yes alias 同じ alias/
alias/
alias.html alias/
alias.html/
entry- なし No alias 同じ entry-alias
alias/
entry-alias
entry-alias/
Yes alias alias/ alias/
alias/ 同じ
entry-alias
entry-alias/
.html No alias 同じ entry-alias.html
alias/
alias.html
alias.html/
entry-alias
entry-alias/
entry-alias.html
entry-alias.html/
Yes alias 同じ alias/
alias/
alias.html alias/
alias.html/
entry-alias 同じ
entry-alias/
entry-alias.html
entry-alias.html/
Copyright© 2006-2017 Phize on the Web All Rights Reserved.