404 ошибки для файлов wordpress/blog на NginX Ubuntu 20.04 PHP 7.4

Я запускаю систему VueJS в корневом каталоге нашего сайта, отключенную от Django API на том же сервере.

example.com — это бета-версия для тестирования.

Я хочу загрузить WordPress в подпапку example.com/blog

Я использую Nginx [нет Apache — и Apache НЕ установлен].

Установили PHP и MySQL и отредактировали наш серверный блок. См. код ниже.

Я получаю 404 ошибки для любых файлов, к которым я пытаюсь получить доступ в /blog, например

https://example.com/blog/readme.html 
https://example.com/blog/test.php 
https://example.com/blog/index.php 
https://example.com/blog/wp-admin/install.php

Вот код блока нашего сервера {IP-адрес замаскирован}

server {
    server_name example.com www.example.com 128.199.###.###;

    root /var/www/html/vue/example/dist;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
        alias /home/example/src;
    }

    location / {
        try_files $uri $uri/ /index.html /index.php;
    }

    location ^~ /rest-auth/ {
    include proxy_params;
    proxy_pass http://unix:/run/gunicorn.sock;
    }

    location ^~ /api/ {
    include proxy_params;
    proxy_pass http://unix:/run/gunicorn.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    location ^~ /admin {
    include proxy_params;
    proxy_pass http://unix:/run/gunicorn.sock;
    }

    location ^~ /blog {
      alias /var/www/html;
      index index.php index.html index.htm;
      try_files $uri =404;
    }

# For security reasons, set php settings at root level.
# This prevents root level php files from showing as plain text.
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    error_log  /var/log/nginx/example-error.log;
    access_log /var/log/nginx/example-access.log;

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}
server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name example.com www.example.com 128.199.###.###;
    return 404; # managed by Certbot

}


Большое спасибо за любую помощь - я просмотрел много ресурсов и пробовал много вещей, но безуспешно - спасибо.


person David    schedule 16.04.2021    source источник
comment
Помогает ли это: stackoverflow.com/questions/12142172/ ИЛИ stackoverflow.com/questions/27565664/?   -  person Martin    schedule 16.04.2021
comment
Спасибо, @Martin, вы молодец - спасибо за это - я не проверял в Firefox - просто тестировал в chrome - и в firefox я получаю 404! -- Так что, по крайней мере, все выглядит немного лучше --- кажется, у меня сейчас где-то проблема со ссылкой/путем   -  person David    schedule 16.04.2021
comment
Не волнуйтесь! Главный принцип задавания нового вопроса в Stack Overflow — сначала убедиться, что подобный вопрос еще не задан, иначе вы рискуете закрыть свой вопрос как дубликат.   -  person Martin    schedule 16.04.2021
comment
Я обновил вопрос, чтобы отразить текущую проблему, теперь, когда хром маскировал @Martin - firefox показывает ошибку 404 для ссылок /blog   -  person David    schedule 16.04.2021


Ответы (1)


Проблема с загрузкой Chrome маскировала простой неверный путь в коде! Firefox показал простую ошибку 404, которую было легко отладить!

Окончательное решение состояло в том, чтобы добавить это место для блога:

location /blog {
          alias /var/www/html/blog;
          try_files $uri $uri/ @blog;

           location ~ \.php$ {
               include snippets/fastcgi-php.conf;
               fastcgi_param SCRIPT_FILENAME $request_filename;
               fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            }
         }

     location @blog {
         rewrite /blog/(.*)$ /blog/index.php?/$1 last;
     }
person David    schedule 17.04.2021