私は自分のサーバーブロックで定義しました:
server {
error_page 401 403 404 /custom_404.html;
location = /custom_404.html {
root /var/www/html;
internal;
}
error_page 500 502 503 504 /custom_50x.html;
location = /custom_50x.html {
root /var/www/html;
internal;
}
}
ただし、404エラーが発生するたびに、これはNginxを通過しませんがWordpressリダイレクトを通過します。
500エラーでも同じことが起こります。私がNginxで定義したエラーページはまったく表示されません。デフォルトの500空白の画面が表示されます。
何が間違っている可能性がありますかについての任意のアイデア?私のコードは正しいと思います。
警告
始める前に、現在使用しているテーマを安全に変更するために childテーマ を作成することを強くお勧めします。そうすれば、テーマを更新する必要がある場合でも、変更内容は上書きされません。
現在のエラーページを変更しています
テーマに既にカスタムエラーページがある場合は、テーマのルートディレクトリ(404.php
)で/wp-content/themes/your-theme/404.php
ファイルを探し、それを(/wp-content/themes/your-theme-child/404.php
)の下の子テーマのフォルダにコピーします。あなたの好みに合わせてこれを修正してください。
エラーページの作成
テーマに404エラーページが設定されていない場合は作成できますが、エラーページを最初から作成する代わりに、テーマのpage.php
ファイルを子テーマディレクトリにコピーして404.php
(/wp-content/themes/your-theme-child/404.php
)に名前を変更しあなたの好みに合わせて。
他の種類のエラーやHTTPステータスコードをカバーしたい場合は、上記の手順を繰り返し、作成したいエラーページの種類を反映するように404.php
や403.php
のようにファイルの名前を変更します。
HTTPステータスコードのリストを参照してください。
子テーマを作成できない場合や作成したくない場合は、常にプラグインを使用できます。 https://wordpress.org/plugins/404page/
出典:
_ nginx _
Nginxは ではありません 私の専門知識です、私はApacheを使用しています。だから私と一緒に負担します。
# define error page
error_page 404 = @notfound;
# error page location redirect 302
location @notfound {
return 404 /custom-error-page;
}
あなたのphpブロックでfastcgi_intercept_errors
をon
に設定してください
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
# intercept errors for 404 redirect
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
詳細については参照してください: https://guides.wp-bullet.com/nginx-redirect-404-errors-to-homepage-wordpress/