サポート » 使い方全般 » パーマリンクをデフォルト運用した時に存在しないURLを指定した時の動作

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • PHPの処理方法によるところがおおきいです。

    http://〜URL〜/?p=value というのは、
    http://〜URL〜/index.php?p=value となっているとお考え下さい。
    (index.htmlやindex.phpが省略できるのはご存知でしょうか?)

    p という変数が value という値を持って、index.phpに渡され、処理されます。

    本題についてですが、上記を踏まえると、

    http://〜URL〜/index.php?p=value と
    http://〜URL〜/index.php?pvalue の挙動は同じであるべき、と思われているようですが、

    プログラム的には
    p という変数が value という値を持って、index.phpに渡されているか、と、
    pvalue という変数が「空」の値を持って、index.phpに渡されているか、の違いとなります。

    WordPressは予め決められた変数で表示するページを制御しています。
    p という変数は記事を表示するため、該当する値がなければ404となりますが、
    pvalue という変数は無視され、index.phpをそのまま表示します。(つまり200)

    ・・・以上の説明でいかがでしょうか?

    モデレーター gatespace

    (@gatespace)

    横からスイマセン。
    WordPressはURLの情報を元にクエリを発行して、それに基づいて適切なページが表示されるようになっています。
    こちらのブログの図が参考になります。
    「WordPressの実行フローを視覚化してみる」
    http://www.warna.info/archives/279/

    デフォルトパーマリンクだとどういうクエリが発行されるか分かりやすいですが、例えば、

    • /?p=1234 :シングルページで投稿のIDが1234の記事
    • /?m=201210 :年別アーカイブ(2012年10月)
    • /?cat=1 :カテゴリーIDが1のアーカイブ

    などなど。

    URLでkeyとvalueを=で渡すのはひじりさんの書かれたとおりです。
    あわせて(小難しいですが)wp-includes/query.phpを読むと、どんなkeyが設定されているかなど、挙動が分かると思います。

    「実在しないURL」と一口に書かれていますが、KeyがWordPressで設定されているがvalueでクエリを発行すると中身が無い場合、とKeyそのものが存在しない場合とで挙動が違うのはごく自然だと思います。

    トピック投稿者 toshichan

    (@toshichan)

    「実在しないURL」と一口に言っても違うわけですね。
    確かにおっしゃるとおりです。
    ひじりさん、gatespaceさん丁寧な解説ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「パーマリンクをデフォルト運用した時に存在しないURLを指定した時の動作」には新たに返信することはできません。