サポート » 使い方全般 » 404ページが表示されない

  • 解決済 chlo

    (@chlo)


    WordPress2.5(日本語版)を使用しています。
    本家のフォーラムを見たのですが、解決法らしきものが見つからなかった為ポストします。

    .htaccessの問題なのだと思うのですが、存在しないアドレスを叩いた場合、
    全く関係ないページが表示されてしまいます。

    具体的には

    http://my-domain.com/abc(存在しないアドレス)

    を開いた場合、

    http://my-domain/com/cde(ページとして作成した、存在するアドレス)

    が開きます。
    存在しないアドレスはサンプルですが、my-domain.com配下のどんなアドレスを叩いても
    「特定の存在しているページ(404ではなくトップページでもない)」が表示されてしまいます。

    パーマリンク設定は「数字ベース」、オプションでは
    カテゴリーベース → /category
    タグベース → /tag
    を指定していますが、上記の存在するアドレスは /category・/tag のいずれの配下でもありません。

    設置している.htaccessの内容はデフォルトの

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    のままです。
    どこを修正すれば正しい404.phpを指すようになるでしょうか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    WordPress 2.5 では、存在しない URL をリクエストしたとき、それに近い URL で存在するものを推測してリダイレクトする機能がついています。「存在する URL」が、比較的短くて、どんな文字列にもマッチしやすいものだと、そういう現象が起きるかもしれません。

    ですので、リダイレクトされるという、具体的なパス名 (スラッシュ以降) を書いてもらえないでしょうか。本当にその現象にあてはまっているのか、確認できるかもしれません。

    .htaccess はおそらく原因ではありません。

    あと、ドメイン名の例示には、example.com や example.jp を使うことが一般に推奨されています。my-domain.com というのは実在するドメイン名ですので、あなたが所有しているのでない限り、使うべきではありません。

    同様の症状が出て困っていたので相乗りさせていただきます。

    ロリポップ上でWP2.3.3jaをインストール後、WP2.5ja→WP2.5.1jaへ
    アップグレードしています。テーマフォルダ内に404.phpを作成して
    WP2.3.3のときは問題なく動いていましたが、WP2.5にアップグレードした後から
    特定のページを404として表示するようになりました。

    <問題のサイト>
    http://www.ide-auto.com/

    <特定のページ>
    http://www.ide-auto.com/event-and-report
    (404.phpを直接叩いたときと比較してください)

    テーマフォルダ内の404.phpを直接叩いても特定のページが代わりに開きます。
    また、テンプレートは特定のページのものですが内容は全ての(非公開含む)
    ページをインクルードした状態で表示されています。

    404.phpや.htaccessの設定は「WordPress標準ガイドブック」に基づいて
    います。

    何か対策があれば教えて頂きたく思いますのでよろしくお願いします。

    トピック投稿者 chlo

    (@chlo)

    レスありがとうございます。

    具体的なパスですが、存在しないどのパスを指定しても
    /about/100qa
    が表示されます。(存在するページ /about の下層ページです)
    このページを /about/100qa ではなく /about/qa100 ににしたり /qa100 にしたり /qa にしたりしてみたのですが、やはり存在しないアドレスはこのページにリダイレクトされる結果となりました。

    > あと、ドメイン名の例示には、example.com や example.jp を使うことが一般に推奨されています。my-domain.com というのは実在するドメイン名ですので、あなたが所有しているのでない限り、使うべきではありません。

    確かに存在しますね・・・
    今後気をつけます。ご指摘ありがとうございました。

    私も同じ症状でここに来ましたが、このスレでは解決に至っていないようです。
    そこで先ほど国際フォーラムのほうで探っていたら解答がありました。

    症状が出るのは、トップページをスタティックページにしている場合のようです。(自分の環境では、上記+パーマリンク構造がデフォルトではない時、という環境ではないかと推測されます。)

    下記に解決法が載っています。
    Improper 404 Error Handling Fix For WordPress 2.5

    /wp-includes/query.phpのline:922
    if ( ('page' != get_option('show_on_front') ) || ( $reqpage != get_option('page_for_posts') ) ) {

    if ( ('page' != get_option('show_on_front') ) || ( $reqpage !== get_option(’page_for_posts’) ) ) {
    にするだけで解決しました。

    同じように困っている方のためになれば、と記しましたが、よろしかったでしょうか…。

    以上、ご報告でした。

    shamanaoさん、対策紹介ありがとうございました。
    おっしゃるとおりトップページは固定ページを表示する設定でした。

    該当箇所を修正する事で正常に404ページが表示されるようになりました。
    本当に助かりました、感謝します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「404ページが表示されない」には新たに返信することはできません。