Nginx не загружает настраиваемую страницу 404 для блога WordPress

Недавно я создал специальную страницу 404 для своего блога WordPress, работающего на Nginx. Однако эта страница находится над моим корневым каталогом. Я думал, что установил параметры правильно, но похоже, что это не работает (я все еще получаю страницу 404 из моей темы). Мне не хватает чего-то простого? Буду признателен за любую помощь.

...
...
...
root /var/www/wordpress/sitenamehere;           #Set document root
autoindex off;                                  #Turn off index browsing everywhere
index index.php index.html;                     #Set indexes to include .php before .html

#Error pages
error_page 404 /404.php;
location /404.php {
  root /var/www/custom_404/404.php;
  internal;
}

location / {
try_files $uri $uri/ /index.php?$args;
...
...
...
 location ~* \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_index index.php;
    include fastcgi_params;
    }
...
...
...

Спасибо!

0
задан 22 August 2016 в 23:30
1 ответ

Я думаю, проблема в том, что вам нужно добавить те же директивы fastcgi в блок location /404.php, которые есть в расположение ~ * \ .php $ блок. nginx обрабатывает только один блок location , и у него нет информации о том, как на самом деле выполнить файл PHP один раз внутри блока location /404.php.

Корень Директива также неверна, она всегда должна содержать каталог, который используется в качестве базы, куда добавляется URI для поиска ресурса. В вашем случае эта конфигурация должна работать:

location /404.php {
    root /var/www/custom_404;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_param DOCUMENT_ROOT $document_root;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    include fastcgi_params;
}
0
ответ дан 5 December 2019 в 09:40

Теги

Похожие вопросы