サポート » 使い方全般 » 特定のアクセスに対して404を返したい。

  • 解決済 nanakamado

    (@nanakamado)


    色々と設定を試してみるのですが、うまくいかないのでアドバイスをお願いいたします。mm

    行いたいことは、archive.phpにアクセスした際にファイル名無しの状態でアクセス時に404を表示したいです。構成としては、ほぼファイル名付きのページなので、/hoge/navi.php では表示させたいですが、/hoge/ のみでのアクセスに対してはステータスとして404を返したいです。

    現在は、404の内容は表示されるのですが、ステータスが200の状態となっています。
    ちなみに、全く存在していないカテゴリ /nantoka/ などでアクセスした場合には404が返ってくるのですが、存在しているカテゴリに対してはなぜか200として返ってきてしまいます。

    存在しているカテゴリに対して、ファイル名無しのアクセスに対して404を返す方法は何か考えられないでしょうか?かなり込み入ったご相談となりますが、お知恵を貸して頂けますと助かります。
    宜しくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全18件中)
  • CG

    (@du-bist-der-lenz)

    固定ページを探しているのではないですか

    トピック投稿者 nanakamado

    (@nanakamado)

    CG様 有難うございます。

    >>固定ページを探しているのではないですか
    固定ページを探すとはどういったことなのでしょうか?

    404を返す方法がありますでしょうか?

    こんにちは

    ファイル名あり・無しがちょっとよく分からないですが、404 の内容を返す時にhttpヘッダを設定してはどうでしょうか。

    https://www.php.net/manual/ja/function.header.php

    トピック投稿者 nanakamado

    (@nanakamado)

    munyagu様
    有難うございます。
    はい、現在も404にはヘッダを設定していますが、存在しないページやディレクトリでは404が返ってくるのですが、記事などを書いた、書いてないは問わず、登録しているカテゴリにアクセスすると200が返ってきてしまいます。

    ファイル名あり・無しは
    /hoge/ とアクセスした場合は404
    /hoge/index.php とアクセスした場合は200 にしたいという感じです。

    ただ実際にはindex.phpというファイル名は存在しないので、
    /hoge/=/hoge/index.php で同じ表示になることはありません。
    伝わりますでしょうか…?

    CG

    (@du-bist-der-lenz)

    Category名でアクセスが有った時に、404or特定の表示をしたいということで、違いますか。「特定からのアクセス」に制限をしたいということですか。

    トピック投稿者 nanakamado

    (@nanakamado)

    CG 様
    有難うございます。

    >>Category名でアクセスが有った時に、404or特定の表示をしたいということで、違いますか。
    はい、その通りです。
    入れ子も含めカテゴリ名のみのアクセスに対して404を返せればと思います。

    >>「特定からのアクセス」に制限をしたいということですか。
    これは、特定のカテゴリのみに対して404を返すという事しょうか?
    現在は前者が対象と考えているのですが、そのようなことも可能なのでしょうか?

    どのようなタイミングで header 関数を実行しているのか分かりませんが、あとから WordPress のheader 関数で上書きされているのではないですか?

    いま手許に環境がないので、どのフックでやればいいかは分からないですが。

    実現したいことがどういうものなのかちょっと把握できていないのですが、下記ページで紹介されているいずれかの方法(「3.1 ステータスコード 404 を付与する」セクションとか)で対応できないでしょうか?
    http://www.koikikukan.com/archives/2007/05/21-022525.php

    トピック投稿者 nanakamado

    (@nanakamado)

    ishitaka 様

    有難うございます!
    こちらのサイトは拝見していまして、諸々対応を行ってみたのですが存在するカテゴリだと200返ってきてしまいます。

    そもそも存在するカテゴリに対してarchive.phpにアクセスしますと、記事一覧が表示させるのが普通なので、200が返る方が正しいのだと思いますが、何とか /hoge/ などのファイル名指定しないアクセスで404を返せれたらと思うのですが…。

    yuki

    (@yuki84yuki)

    あまり具体的な回答でなく申し訳ないですが
    htaccessで404リダイレクト出来ないでしょか?

    私の環境では、存在するカテゴリでもテンプレートの一番上で http ヘッダを 404 に設定したら 404 で帰ってくるんですが・・・

    トピック投稿者 nanakamado

    (@nanakamado)

    yuki様
    有難うございます。
    htaccessで指定しても効かないのです…。

    トピック投稿者 nanakamado

    (@nanakamado)

    munyagu様
    有難うございます。

    >>私の環境では、存在するカテゴリでもテンプレートの一番上で http ヘッダを 404 に設定したら 404 で帰ってくるんですが・・・

    そうなのですね、なぜこちらの環境では404が返せないのか不思議でなりません…。
    http ヘッダはarchive.phpに対して指定されていらっしゃいますか?

    archive.php の get_header()の上に書いています。
    Twenty Nineteen ですが、このようにしています。

    <?php
    /**
     * The template for displaying archive pages
     *
     * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
     *
     * @package WordPress
     * @subpackage Twenty_Nineteen
     * @since 1.0.0
     */
    header("HTTP/1.0 404 Not Found");
    get_header();
    ?>
    
    	<section id="primary" class="content-area">

    結果はこちらです。

    cat というカテゴリは存在するのでブラウザにはcatカテゴリの内容が表示されますが、レスポンスコードは 404 になっています。

    https://imgur.com/UneQQKs

15件の返信を表示中 - 1 - 15件目 (全18件中)
  • トピック「特定のアクセスに対して404を返したい。」には新たに返信することはできません。