We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33488
    • 429 Posts
    普通にリンク先がid=で出力されちゃうとするとフレンドリーURLが有効になってないように思えるんですが・・・違うかなぁ。
    HREFのリンク先をどこページ(管理画面とかフロントのリストとか)で確認されているのかでも微妙に関係してくるところかと思います。
    DittoやWayfinderなどで自動でリンク先を生成している箇所でFURLでないとすると設定が有効になってないかと判断はできます、これらは[~id~]でリストを生成して、MODx内部でFURLかどうかでURLを自動生成しますので、これらでindex.php?id=xxになるとするとMODxコアではFURLでないと判断されます。
    なので、
    style.cssより[~xxx~]にして出力されるHTMLソースをチェックするのがよいかもです。

    参考には程遠いかも・・・ですが、とりあえず・・なんとなく気になったところなんで。
      • 11850
      • 16 Posts
      みなさんご返信ありがとうございました。


      [
      新しいドキュメントを作成するとindex.php?id=XXでURLが生成されます。(ブラウザーに表示されるURL)

      この部分ですがindex(スタートページ)の場合はブラウザーのアドレスの部分やリンクバーにてURLが省略されていたので
      判らなかったのですが新しいページを生成したら(例えばドキュメントエイリアスをpage)リンクバーには
      modx/page.htmlではなくmodx/index.php?id=XXと表示されたために初めてFURLが正常に動いていなかった事が判ったのです。

      普通にリンク先がid=で出力されちゃうとするとフレンドリーURLが有効になってないように思えるんですが・・・違うかなぁ。

      私もそう思いこれはFURLが正常に働いていないと気がつきました。
      でもそうであればこのスレの一番初めの

      そして、このチュートリアルはFURLを利用することを前提に書いていますので
      <link rel="stylesheet" href="style.css" type="text/css" media="screen,tv" />
      となっていますが、FURLを利用しないのであれば、「href="~"」の部分は、クエリ形式の
      URLで指定しなければなりません。例えば、「href="index.php?id=54"」(54はCSSのドキュメントナンバー)などです。

      という問題を解決できたのだから( href="style.css"で正常に表示される)FURLは正常に働いていると考えるべきなのだと思います。
      一応、MODxのFURLの設定をONにしてから関係するドキュメントはすべて再度保存しなおしました。

      style.cssより[~xxx~]にして出力されるHTMLソースをチェックするのがよいかもです。

      申し訳ありませんがこの部分を説明していただけますか?

        • 19033
        • 892 Posts
        こんにちは。

        想像でしかないのですが、おそらくFURLは、無効なのではないでしょうか。

        style.cssが実ファイルとしてサーバーに存在していないでしょうか。
        たとえば、baseurlが、「http://yoursite.com/modx/」だとして、
        現在のcssの読み込みが以下のようであれば、
        <link rel="stylesheet" href="style.css" ..... />

        http://yoursite.com/modx/style.css」がファイルとして存在していないでしょうか。
        サーバにという意味です。であるならば、FURLが無効な状態であっても、CSSは、
        実ファイルを読み込んでいるわけなので、適用されますよね。

        style.cssより[~xxx~]にして出力されるHTMLソースをチェックするのがよいかもです。

        CSS読み込みの部分を以下の様にしてみて下さい。
        <link rel="stylesheet" href="[~docid~]" type="text/css" media="screen,tv" />

        docidは、CSSのドキュメントIDです。そして、保存したら、ページをプレビューしてソースをみてください。

        「href="[~docid~]"」の部分がクエリ形式になっているのならば、FURLは無効と言うことになります。
          • 11850
          • 16 Posts
          さっそくのご返答ありがとうございます。

          docidは、CSSのドキュメントIDです。そして、保存したら、ページをプレビューしてソースをみてください。

          「href="[~docid~]"」の部分がクエリ形式になっているのならば、FURLは無効と言うことになります。

          上記のように試してみましたが http://localhost/modx/index.php?id=2 と表示されました。
          FURLがまだ働いていないということのようですね。

          しかし

          style.cssが実ファイルとしてサーバーに存在していないでしょうか。
          たとえば、baseurlが、「http://yoursite.com/modx/」だとして、
          現在のcssの読み込みが以下のようであれば、
          <link rel="stylesheet" href="style.css" ..... />

          http://yoursite.com/modx/style.css」がファイルとして存在していないでしょうか。

          この件に関しましてはファイルは存在していません。
          modx/以下にはimagesフォルダーは作りましたがcssはアップロードしてありません。

          またこの状態はサクラサーバーでも同じです。
          多分同じ設定ミスをしているのだと考えられます。

          .htaccsessの設定は http://modxcms.com/forums/index.php/topic,14898.0/wap2.html 以外のスレで解説があるところがありましたらご紹介ください。一応自分でも色々と検索しましてその通りに設定したつもりです。

          :’(

          それとここで一つだけこのスレを読んでいる方に誤解を受けないように書いておきますが「MODxで作る最強の...」という著書は
          私のような初心者には大変良心的な本だと感心しています。間違えやすい部分も明示的に示してあり。
          この本だけで簡単なサイトは構築出来ます。
          このスレタイでこの著書に対する評価が下がるような事があれば申し訳ないです。
            • 33488
            • 429 Posts
            FURLは無効っぽいんですけど、フレンドリーエイリアスがNOという設定をされたとのことですので、管理画面上だとフレンドリーURLはYESになってる状態ですよね。
            NOだとエイリアスの設定は表示されないので、確実にYESで保存されているように思えます。
            が、URLはGETパラメタ形式で出力されるというのは・・・・・・うーむ、なかなか難しいですねぇ。
            1.試しにエイリアスをYESにしてみる。
            2.assets/cacheの中のファイルを削除して、管理画面のキャッシュクリアをしてみる。

            ぐらいしか思いつきません。(これも有効かどうかも怪しいですけど)

            ちなみに、style.cssはブラウザでアクセスするとスタイルシートのソースは表示されますでしょうか?? それともNot Foundになりますでしょうか?
            index.php?id=xxxならもちろんソースが表示されるはずですが。

            rewriteに関しては、FURL形式でリンクができるようになってからでOKですので、まずはこの原因をクリアしましょう♪

              • 11850
              • 16 Posts
              早速のご返信ありがとうございました。

              1.試しにエイリアスをYESにしてみる。
              2.assets/cacheの中のファイルを削除して、管理画面のキャッシュクリアをしてみる。

              1ですが「フレンドリーエイリアス」はすでにONです。OFFにしてあったのは「エイリアスパスを使用」です。
              一応、エイリアスパスを使用もONにしてみました。
              2も試してみました(削除後、ページの再構築)が同じです。

              ちなみに、style.cssはブラウザでアクセスするとスタイルシートのソースは表示されますでしょうか?? それともNot Foundになりますでしょうか?
              index.php?id=xxxならもちろんソースが表示されるはずですが。

              上記の件ですがどちらもstyle.cssがダウンロードされ始めて関連付けされているアプリケーションが立ち上がります。
              本来はNot Foundにならないとおかしいのでしょうか?
              しかしMODx/以下にはファイルはありません。

              最悪の場合はクリーンインストールして試してみますがさくらサーバー上でも同じ症状なので設定の間違いだと思います。

                • 36592
                • 970 Posts
                何だか様子がおかしいですね... ZeRoさんがコメントされているとおり、1つずつ確認する方が良いと思います。

                1. 現在「フレンドリーURL」「フレンドリーエイリアス」「エイリアスパス」の3つとも「On」の状態になっている。
                2. なのに、TOPページを表示させると、Wayfinderや[~2~]形式でMODxが吐き出したリンク先URLが「index.php?id=??」形式になっている。

                これは間違いないですか?
                  • 33488
                  • 429 Posts
                  Quote from: HASE at Sep 22, 2007, 04:10 PM

                  上記の件ですがどちらもstyle.cssがダウンロードされ始めて関連付けされているアプリケーションが立ち上がります。
                  本来はNot Foundにならないとおかしいのでしょうか?
                  しかしMODx/以下にはファイルはありません。

                  最悪の場合はクリーンインストールして試してみますがさくらサーバー上でも同じ症状なので設定の間違いだと思います

                  Not Foundとならない状態であれば、MODx配下にあると考えられます、フレンドリーURLがOFFでもhtaccessが正しい設定だとドキュメントに設定されたalias名でちゃんと表示します。
                  これが確実にMODxの配下かどうかは、該当するstyle.cssのドキュメントに修正を加えて、前回と同様に直接アクセスして同じ修正がなされているかを確認すれば完全にMODx配下にあると考えてよいかと思います。

                  その上で、[~docid~]の展開がaliasにならない原因を探ることになるんですが・・ huh
                  ロジック上DBまたはassets/cache/siteCahce.idx.phpのfriendly_urlsが1(ON)になっているかどうかでリンク生成時の判断されています(たしか)。
                  まずは、ローカルXAMPPのMODxでassets/cache/siteCache.idx.phpをエディタで開いてもらって、以下の箇所がどうなっているか確認してみてください。

                  $c[’friendly_urls’] = "1";
                  ここの”1”がFURLがONの状態、"0"ならOFFの状態を表します。
                  管理画面でON/OFFをそれぞれ設定保存してから、上記のファイルを確認または設定保存後にキャッシュクリアをしてから確認してみてください。
                  これで正しく設定と同じ"1"または"0"になっているとすると、Dittoやテンプレートの[~docid~]の記述が設定通りのリンクの生成にならないといけません。
                  ”1”でも"0"と同じURL形式になるとすると、考えられるのはキャッシュが残っている としか思いつきません。
                  ローカルXAMPPであれば、操作のたびにassets/cacheをクリア、管理画面のキャッシュクリアをしてドキュメントを表示させればキャッシュの残骸による問題かどうかは判別できそうです。

                  キャッシュが残っているとかならよいんですが・・・今までのところそうではなさそうな感じもしますので悩ましいですねぇ。
                    • 11850
                    • 16 Posts
                    早速のご返答ありがとうございました。

                    1. 現在「フレンドリーURL」「フレンドリーエイリアス」「エイリアスパス」の3つとも「On」の状態になっている。
                    2. なのに、TOPページを表示させると、Wayfinderや[~2~]形式でMODxが吐き出したリンク先URLが「index.php?id=??」形式になっている。

                    これは間違いありません。

                    ローカルXAMPPのMODxでassets/cache/siteCache.idx.phpをエディタで開いてもらって、以下の箇所がどうなっているか確認してみてください。

                    $c[’friendly_urls’] = "1";
                    $c[’friendly_url_prefix’] = "page";
                    $c[’friendly_url_suffix’] = ".html";
                    $c[’friendly_alias_urls’] = "1";
                    $c[’use_alias_path’] = "1";
                    $c[’use_udperms’] = "1";

                    となっており。管理画面での設定が正しく反映されているようです。

                    Not Foundとならない状態であれば、MODx配下にあると考えられます、フレンドリーURLがOFFでもhtaccessが正しい設定だとドキュメントに設定されたalias名でちゃんと表示します。これが確実にMODxの配下かどうかは、該当するstyle.cssのドキュメントに修正を加えて、前回と同様に直接アクセスして同じ修正がなされているかを確認すれば完全にMODx配下にあると考えてよいかと思います。

                    この部分はこれから試してみます。
                      • 11850
                      • 16 Posts
                        huh

                        なんかますますドツボにはまりました。

                        これが確実にMODxの配下かどうかは、該当するstyle.cssのドキュメントに修正を加えて、前回と同様に直接アクセスして同じ修正がなされているかを確認すれば完全にMODx配下にあると考えてよいかと思います。

                        上記を試してみました。

                        試す方法として以下の順で試しました。

                        1.まずはキャッシュのクリア
                        2.次にstyle.cssの名前をstyle2.cssへ名前を変えた後にプレビューする。
                        3.indexページ内のリンクをstyle2.cssへ名前を変えてプレビュー
                        4.index内のリンクおよびスタイルシートの名前をstyle.cssと名前を戻しstyle.cssの一部のcolor:#333のカラーコードを変えて再度プレビュー
                        5.最後にhttp://localhost/modx/style.css を実行してソースを確認する。

                        その結果次の結果となりました。

                        2ではスタイルシートが適応されていないページが表示されます。
                        3では正常に表示されました。
                        4でも変更部分の色が変わりました。
                        5では変更したソースが表示されました。

                        上記から考えるとindexから呼び出しているsyle.cssは管理画面でドキュメントとして保存したsyle.cssだと言う事が言えると思います。

                        huh
                        ますます混乱してしまいました。