こんにちは、お世話になっております。
いつも拙い質問にご回答いただけるおかげで、modxの利用も快調です。
ありがとうございます。
今回は1点、URLに関してどなたかにお聞きできれば幸いです。
具体的には、
「サイトスタートのドキュメントに番号1のリソースを指定した時に、それ以下の子ドキュメントたちのURLを、http://sample.com/1/aaa.html ではなく、 http://sample.com/aaa.html というURLでアクセスできないか?」ということです。
目的は、URLをできるだけ短くしたいことと、パンくずリスト(Breadcrumbs)を楽に作成したいこと、です。
なお、必ずしも上記のようにできる必要はないのですが、できるといいなぁ、という程度のレベルのものです。
環境は、
・フレンドリーURL利用
・SEO Strict URLsプラグイン利用
・modx-1.0.4J-r3利用
・MySQLバージョン:5.1.22-rc
・coreserver
です。
詳細ですが、現在、以下の構成でサイトを作成したいと考えております。
AAA(ドキュメント番号:1)
┗BBB(ドキュメント番号:2)
┗CCC(ドキュメント番号:3)
としたく、サイトスタートに「AAA」を設定しています。
当然、http://sample.com/ のURLで、AAAにアクセスできる状態です。
ですが、例えばCCCにアクセスしようと思うと、「http://sample.com/2/3.html」ではなく、「http:/ ... html」となります。
「http://sample.com/2/3.html」でCCCにアクセスできるようにすると、
AAA
BBB
┗CCC
というように、BBBを、AAAの子リソースではなく、ドキュメント番号「0」を指定しなければなりません。
こうすると、今度はBreadcrumbsなどのパンくずリストで、BBBの戻り先が「http://sample.com/0.html」となり、うまく繋がらなくなってしまいます。
普通に考えて正常な動作かと思いますし、無理なようならテンプレートを編集することで対応できるので、必ずしもできる必要はないのですが、
もし可能ならそちらの方が楽だな、と思い質問させていただきました。
わかりやすくご説明できているか不安ですが、よろしくお願い致します。
フレンドリーURLの動作について
Re: フレンドリーURLの動作について
こんにちは
難しく(厳密に)考えすぎてませんでしょうか?
難しく(厳密に)考えすぎてませんでしょうか?
上の図は、確かに、ツリーの第一レベルに位置するリソース群は、スタートページにぶら下がるべきと考えるのが自然です。しかし、MODxでは、システム内の任意のリソースをスタートページにできるという仕組み(機能)があるため、ツリー上では親子でなくても、表示上では親子である、という状態が存在します。言い換えますと、スタートページに指定したリソースは、「サイト名」で表示されるリソースツリーの先頭行(つまりホームページ)にプログラム的に位置づけられ、見た目上、リソースツリーの第一レベルに位置するすべてのリソースの親になります。この考えからすると、上の構成は見た目の話で、ツリー上でこうしてしまうと、結果的に、ホームページが二重に存在することになり、話がややこしくなってしまいます。cobbbko さんが書きました:詳細ですが、現在、以下の構成でサイトを作成したいと考えております。
AAA(ドキュメント番号:1)
┗BBB(ドキュメント番号:2)
┗CCC(ドキュメント番号:3)
としたく、サイトスタートに「AAA」を設定しています。
これはAAAをスタートページに指定したためであって、リソースツリーの頂点にいるからではありません。cobbbko さんが書きました:当然、http://sample.com/ のURLで、AAAにアクセスできる状態です。
これは、ホームページが二重に存在するため、結果的にこうなります。cobbbko さんが書きました:ですが、例えばCCCにアクセスしようと思うと、「http://sample.com/2/3.html」ではなく、「http:/ ... html」となります。
リソースツリー上では上記があるべき姿です(というか、AAAはどこに居てもよい)。ツリー上ではAAAとBBBが同じレベルに存在するように見えますが、AAAをスタートページに指定した時点で、見た目上はAAAは既にそこにはなく、リソースツリー先頭のホームページの位置に居る(つまりBBBの親として存在している)ことになります。cobbbko さんが書きました:AAA
BBB
┗CCC
Re: フレンドリーURLの動作について
sama55さん、ご回答ありがとうございます。
ご指摘の通り、まさに「ツリー上で上記のようにしてしまうと、ホームページが二重に存在することになっている」状態です。
その結果、目指す形である、「http://sample.com/2/3.html」のURLでCCCを表示し ... ことになっております。
これってやっぱり仕方ないかな・・・とは思っておりますが、何か抜け道があるようなら、と思いましたが、
冷静に考えるとなかなか難しそうですね。
mod_rewriteなどを駆使すればなんとかなるのかもしれませんが、それぐらいなら別にURLが「http://sample.com/1/2/3.html」となることもいたしか ... け入れたいと思います。
URL以外の部分は、特に何か問題があるわけではなく、また、ご指摘いただいた、
ありがとうございます
ありがとうございますsama55 さんが書きました: 難しく(厳密に)考えすぎてませんでしょうか?上の図は、確かに、ツリーの第一レベルに位置するリソース群は、スタートページにぶら下がるべきと考えるのが自然です。しかし、MODxでは、システム内の任意のリソースをスタートページにできるという仕組み(機能)があるため、ツリー上では親子でなくても、表示上では親子である、という状態が存在します。言い換えますと、スタートページに指定したリソースは、「サイト名」で表示されるリソースツリーの先頭行(つまりホームページ)にプログラム的に位置づけられ、見た目上、リソースツリーの第一レベルに位置するすべてのリソースの親になります。この考えからすると、上の構成は見た目の話で、ツリー上でこうしてしまうと、結果的に、ホームページが二重に存在することになり、話がややこしくなってしまいます。cobbbko さんが書きました:詳細ですが、現在、以下の構成でサイトを作成したいと考えております。
AAA(ドキュメント番号:1)
┗BBB(ドキュメント番号:2)
┗CCC(ドキュメント番号:3)
としたく、サイトスタートに「AAA」を設定しています。
ご指摘の通り、まさに「ツリー上で上記のようにしてしまうと、ホームページが二重に存在することになっている」状態です。
その結果、目指す形である、「http://sample.com/2/3.html」のURLでCCCを表示し ... ことになっております。
これってやっぱり仕方ないかな・・・とは思っておりますが、何か抜け道があるようなら、と思いましたが、
冷静に考えるとなかなか難しそうですね。
mod_rewriteなどを駆使すればなんとかなるのかもしれませんが、それぐらいなら別にURLが「http://sample.com/1/2/3.html」となることもいたしか ... け入れたいと思います。
URL以外の部分は、特に何か問題があるわけではなく、また、ご指摘いただいた、
という部分に関しても、まさにその通りですので、上記のような形で運営を続けたいと思います。sama55 さんが書きました:リソースツリー上では上記があるべき姿です(というか、AAAはどこに居てもよい)。ツリー上ではAAAとBBBが同じレベルに存在するように見えますが、AAAをスタートページに指定した時点で、見た目上はAAAは既にそこにはなく、リソースツリー先頭のホームページの位置に居る(つまりBBBの親として存在している)ことになります。cobbbko さんが書きました:AAA
BBB
┗CCC
ありがとうございます