Цикл перенаправления при доступе к wp-admin под подпутью - PullRequest
0 голосов
/ 28 июня 2019

У меня есть мой основной сайт, скажем, example.com (с использованием ALB + EC2), в котором есть 2 сайта Wordpress с именами /press и /diary (они используют многосайтовый Wordpress)

По многим причинам я хочу создать новый сайт Wordpress для вызова blog. Я создал этот новый сайт, работающий на других ALB и EC2, и он прекрасно работает на поддомене blog.example.com

Теперь я хочу использовать суб-путь, например example.com/blog вместо субдомена.

Я настроил основной сайт nginx для передачи всего доступа к пути / блогу новому балансировщику нагрузки сайта.

mainsite-nginx.conf

server {
    listen       80;
    server_name  example.com;
    root         /usr/share/nginx/html;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    error_page 404 /404.html;
    location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }

    location /healthcheck {
       empty_gif;
       access_log off;
       break;
    }

    resolver                8.8.8.8;
    resolver_timeout        5s;

    set $blog_elb "blog-wp-lb-xxx.ap-northeast-1.elb.amazonaws.com";

    location @blog {
       proxy_pass https://$blog_elb;
    }

    location ~ ^/blog/?.* {
       try_files $uri @blog;

    }

    if (!-e $request_filename) {
    rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
    rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last;
    rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
  }

    location ~* /wp-login\.php|/wp-admin/((?!admin-ajax\.php).)*$ {
    fastcgi_pass app:9000;
    fastcgi_read_timeout 300;
    fastcgi_index  index.php;
    fastcgi_param  HTTPS    $my_https;
    fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ \.php$ {
    fastcgi_pass app:9000;
    fastcgi_read_timeout 300;
    fastcgi_index  index.php;
    fastcgi_param  HTTPS    $my_https;
    fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    include fastcgi_params;

Новый WordPress сайт конфигурации nginx

server {
    listen 80;

    root /var/www/html;
    index index.php;

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

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    set_real_ip_from  10.0.0.0/8;
    real_ip_header    X-Forwarded-For;
    real_ip_recursive on;

    location /healthcheck {
    empty_gif;
    access_log off;
    break;
  }

  location ~ /wp-admin/admin-ajax\.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_read_timeout 300;
    fastcgi_pass wordpress:9000;
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME $request_filename;
    include fastcgi_params;
    allow all;
  }

  location ~ (/wp-admin/.*\.php|wp-login\.php$) {
    allow xx.xx.xx.xx/32;
    allow xx.xx.xx.xx/32;
    allow xx.xx.xx.xx/32;
    deny all;

    fastcgi_pass wordpress:9000;
    fastcgi_read_timeout 300;
    fastcgi_index  index.php;
    fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ \.php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass wordpress:9000;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
  }
}

URL-адрес сайта WordPress установлен на https://example.com/blog

Мои проблемы:

  1. При доступе к https://example.com/blog все css и js получают ошибку 404 В журнале опций разработчика браузера, похоже, браузер пытается получить доступ https://example.com/blog/wp-content/themes/mycustomtheme/css/bootstrap.min.css
    Попытка получить файл, который не существует на главном сервере

  2. При доступе к странице wp-admin я получил ошибку цикла перенаправления

Как мне это исправить.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...