フレンドリーURLを使用して静的サイトのURLのように見せる
各ドキュメントを表示するURLはデフォルトではIDパラメータが付いていかにもCMSを使っている風になりますが、フレンドリーURLを使用すると静的なHTMLで作られたサイトのように見せる事ができます。
フレンドリーURLを使用しない場合
/?id=59
フレンドリーURLを使用する場合
/modx.html
- フレンドリーURLの設定
- フォルダに「index.html」があるように見せる
- ツリーを擬似フォルダ化しない場合
- SEO対策
フレンドリーURLの設定
管理画面>ツール>グローバル設定からフレンドリーURLの設定タブを開きます。
一番上の「フレンドリーURLを使用」を「はい」にして、その下の注意書きの通りMODXインストールディレクトリのsample.htaccessファイルを.htaccessにリネームします。
ディレクトリの書き込み権限がある場合はグローバル設定更新時に自動的にリネームしますが、自動リネームを行ないたくない場合はsample.htaccessを予め削除しておいてください。動作しない場合は.htaccessを開いて、コメントアウトされている「Options +FollowSymlinks」の記述を有効にしてみてください。
はいを選択すると下にいろいろ設定項目が出てきますが、デフォルトのままで特に問題ありません。
フレンドリーURLを設定するとID59なら以下のようにアクセス出来るようになります。
/59.html
ID59のドキュメントの「エイリアス」をmodxと設定しておくとエイリアス名でアクセス出来るようになります。
/modx.html
また、ID59にサブドキュメントがある場合そのドキュメントは以下のようにアクセスすることができます。
http://chibinowa.net/modx/tutorial.html
「エイリアスパスを使用」がデフォルトで「はい」になっているので、ツリーがそのままフォルダ構造のようになります。
フォルダに「index.html」があるように見せる
通常URLが「/」で終わるURLと「index.html」は別のドキュメントと解釈されます。オレンジ色がエイリアスです。
以下のようにフォルダのドキュメントを、エイリアスをindexにしたサブドキュメントへのリンクにすると、ただのフォルダのような扱いになります。
[ID:2] MODX [modx]
├[ID:3] MODXのインストール[install]
├[ID:4] 機能と使い方[features] (ID:5へのリンク)
│ └[ID:5] MODXの機能とMODX変数[index]
└[ID:5] チュートリアル[tutorial]
- /modx/features.html
- /modx/features/
というようなID4へのアクセスは全て以下のID5へリダイレクトされます。
- /modx/features/index.html
スニペットなどが吐いたメニューやドキュメント内のID4のリンク[~4~]はパースされた時点でID5へのリンクに置き換わっていますので、いちいちリダイレクトするという事はありません。ナビゲーションに同じファイルへのリンクはいらないという場合は、ID5の方のメニューに表示のチェックを外しておきましょう。
当サイトの「MODX>機能紹介や使い方>MODXの機能とMODX変数」のページがこのような構成になっています。
もうひとつの方法では、フレンドリーURLの設定項目のサフィックスを「/」にしておき、サブドキュメントにだけ個別に「.html」と拡張子をつけると、サフィックスを付けていないドキュメントは全てスラッシュで終わるURLでアクセス出来るようになります。サブドキュメントが無いものも全てフォルダのようにスラッシュで終わってもいい場合は個別に拡張子をつける必要はありません。
使用しているテンプレートを判断して自動的につける処理を行えば簡単そうではありますが、逆に自動化をしないとかなり面倒です。
ツリーを擬似フォルダ化しない場合
「エイリアスパスを使用」を「いいえ」にした場合は、サブドキュメントでも以下のようにルートにあるファイルのようになります。
http://chibinowa.net/tutorial.html
エイリアスはmodx-tutorialなど他のツリーのドキュメントとも重複しないようにするといいでしょう。
http://chibinowa.net/modx-tutorial.html
「重複エイリアスを許可」を「はい」にする状況というのは、特定のドキュメントでエイリアスを共通にして日付などを自動的に付加したものをURLとして使用する場合など・・・だと思います。プラグインで実装できそうですね。これはあとで試してみます。
SEO対策
MODXは、フレンドリーURLを使うと同じ複数のURLが存在する事になります。例えば以下は全て同じドキュメントID59を表示します。
- /?id=59
- /modx
- /modx.html
- /modx.html/
検索サイト側には別のファイルとして、コンテンツの重複とみなされる場合があります。これはSEO的にあまり良くないので、HTMLのヘッダーに「」を入れておくことをおすすめします。
これを解決するための「SEO Strict URLs」というプラグインもあるのですが、他のプラグインと組み合わせた場合不具合が起きることが多いためあまり推奨はされていないようです。