フレンドリーURLを使ってURLを分かりやすくする

最終更新日
2017.10.12

移行作業中のため一部のページが正しく表示されていない場合があります(o-ω-))

URL を静的サイトのように見せる MODX のフレンドリーURL の使い方を説明します。

各ドキュメントを表示する URL はデフォルトではIDパラメータが付いていかにも CMS を使っている風になりますが、フレンドリーURL を使用すると静的なHTMLで作られたサイトのように見せる事ができます。

フレンドリーURL を使用しない場合

http://chibinowa.net/?id=59

フレンドリーURL を使用する場合

http://chibinowa.net/modx.html

URLをぱっと見るだけで何のページか分かりやすいですね。

フレンドリーURLの設定

管理画面>ツール>グローバル設定から フレンドリーURL の設定タブを開きます。

一番上の「フレンドリーURLを使用」を「はい」にして、その下の注意書きの通り MODX インストールディレクトリの sample.htaccess ファイルを .htaccess にリネームします。

ディレクトリの書き込み権限がある場合はグローバル設定更新時に自動的にリネームしますが、自動リネームを行ないたくない場合は sample.htaccess を予め削除しておいてください。動作しない場合は .htaccess を開いて、コメントアウトされている「Options +FollowSymlinks」の記述を有効にしてみてください。

はいを選択すると下にいろいろ設定項目が出てきますが、デフォルトのままで特に問題ありません。

フレンドリーURLを設定すると ID59 なら以下のようにアクセス出来るようになります。

http://chibinowa.net/59.html

ID59 のドキュメントの「エイリアス」を modx と設定しておくとエイリアス名でアクセス出来るようになります。

http://chibinowa.net/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] Tips&チュートリアル[tips]
  • http://chibinowa.net/modx/features.html
  • http://chibinowa.net/modx/features/

というようなID4へのアクセスは全て以下の ID5 へリダイレクトされます。

  • http://chibinowa.net/modx/features/index.html

スニペットなどが吐いたメニューやドキュメント内の ID4 のリンク[~4~]はパースされた時点で ID5 へのリンクに置き換わっていますので、いちいちリダイレクトするという事はありません。ナビゲーションに同じファイルへのリンクはいらないという場合は、ID5 の方のメニューに表示のチェックを外しておきましょう。

当サイトの「MODX>基本機能>MODXの機能と使い方」のページがこのような構造になっています。

もうひとつの方法では、フレンドリーURL の設定項目のサフィックスを「/」にしておき、サブドキュメントにだけ個別に「.html」と拡張子をつけると、サフィックスを付けていないドキュメントは全てスラッシュで終わる URL でアクセス出来るようになります。サブドキュメントが無いものも全てフォルダのようにスラッシュで終わってもいい場合は個別に拡張子をつける必要はありません。
使用しているテンプレートを判断して自動的につける処理を行えば簡単そうではありますが、逆に自動化をしないとかなり面倒です。

ツリーを擬似フォルダ化しない場合

「エイリアスパスを使用」を「いいえ」にした場合は、サブドキュメントでも以下のようにルートにあるファイルのようになります。

http://chibinowa.net/tutorial.html

エイリアスは modx-tutorial など他のツリーのドキュメントとも重複しないようにするといいでしょう。

http://chibinowa.net/modx-tutorial.html

「重複エイリアスを許可」を「はい」にする状況というのは、特定のドキュメントでエイリアスを共通にして日付などを自動的に付加したものを URL として使用する場合など・・・だと思います。プラグインで実装できそうですね。これはあとで試してみます。

SEO対策

MODXは、フレンドリーURL を使うと同じ複数の URL が存在する事になります。例えば以下は全て同じドキュメント ID59 を表示します。

  • http://chibinowa.net/?id=59
  • http://chibinowa.net/modx
  • http://chibinowa.net/modx.html

検索サイト側には別のファイルとして、コンテンツの重複とみなされる場合があります。これは SEO 的にあまり良くないので、HTML のヘッダーに「canonical」を入れておくことをおすすめします。

<link rel="canonical" href="[(site_url)][~[*id*]~]" />