404 指定のページを表示するのに **.php ファイルだけ「 File not found. 」表示

adress.php は、ウェブサーバー上に過去にあったファイルで、Google Search Console でも削除依頼していたが、検索でヒットしてしまう。確認のためアクセスしてみると「File not found. 」が表示された。

.htaccess では、404 の時、「note.html」を表示する指定をしている。
.cgi や .html は .htaccess の指定通りに動作するが、.php だけ動作が違う。

調べてみると、こんな情報があった

https://stackoverflow.com/questions/63688959/php-configuration-setting-for-404-errors

Due to enabling the mod_proxy_fcgi and using PHP-FPM this might happen.The default error page in the proxy is File not Found. Try adding the following in your http.conf or apache.conf

確かに症状のでているウェブサイトは、PHP-FPM だ。

apache の .conf に「ProxyErrorOverride On」を指定するように助言されている。

ここでは、サイトルート以外でワードプレスを利用しており、サイトルートの.htaccess に、下記を指定することで、ワードプレスによる404表示とした。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ワードプレス/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ワードプレス/index.php [L]
</IfModule>

ワードプレスによる404表示がされるのであれば、

ErrorDocument 403 /note.html
ErrorDocument 404 /note.html
ErrorDocument 500 /note.html

といった、指定は削除することにした。

httpd -t -D DUMP_CONFIG 2>/dev/null | grep -v ‘#’

上記コマンドで apache の設定状況がわかるので、慣れないサーバではチェックすることになるのかな。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です