We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 36592
    • 970 Posts
    どこに投稿して良いのか分からないのでとりあえずここで...

    いくつかのサーバーにMODxをインストールしています。
    存在しないURLにアクセスしたときのHTTPレスポンスについて質問です。

    どのサイトでも、存在しないURLにアクセスするとMODx設定のエラーページに設定したページが表示されます。
    これは問題ありません。

    しかし、その時のHTTPレスポンスコードがいろいろなんです...

    HTTPレスポンスヘッダーの「Status:」行とHTTPレスポンス本文に 404とか Not Foundとか入ってくるんですが、
    あるサイトだけそれが「200 OK」になってしまうんです。
    Status行はサーバーによってあったりなかったりしますし、Status行の内容とレスポンス本文の内容が異なったりします。
    Status行もレスポンス本文も「200 OK」を返すサーバーもあるものですから、
    Googleが404ページを覚えてしまい検索結果にいくつか404ページが混じってしまっています。

    MODx側の問題なのかApacheの設定の問題なのか...?

    どなたか詳しい方フォロー下さい。
    宜しくお願いします。
      • 33488
      • 429 Posts
      PHPのheaderのマニュアルを読んだっていうレベルでなんなんですが、マニュアルの下のやり取りでもちょっと似たようなことが書かれてるみたいな・・。
      環境によって起こるんでしょうかねぇ。
      対処できたのかどうか不明ですけど、↑のやり取りを見るとheader関数のパラメタにレスポンスコードも指定するようなことが書いてあります。
      MODxだとdocument.parser.inc.phpのSendForward()の部分を改造すればいいのかも・・。
        • 36592
        • 970 Posts
        ZeRoさん、コメントありがとうございます。

        sendForward関数を改造してみましたが変化がありませんでした... :’(

        で、HTTPレスポンスヘッダを見ていたら見慣れないヘッダがありまして、
        どうやらそれはWordPressが吐き出しているようなんです。
        実は該当のサイトはWordPressIntegratorを使っていて、
        サイドバーに常時WordPressが吐き出す月別アーカイブ等のメニューを表示しています。
        実験したら、どうやらこれが「200 OK」を吐き出してるみたい...

        あぁ~ WordPressの中を解析しないとダメっぽい... undecided