Рейтинг:0

Nginx перенаправляет определенный путь на поддомен за пределами Wordpress

флаг cn

У меня есть основной веб-сайт, использующий Вордпресс питаться от Nginx (используя HTTPS https://example.com) и мне нужно перенаправить определенный путь на другой сервер, отвечающий на поддомен http://files.example.com (без SSL).

Что бы я ни пытался, переписать или перенаправить 301, я попадаю на страницу ошибки Wordpress 404. Я думаю, что не могу выйти за пределы местоположения Wordpress в моей конфигурации Nginx:

сервер {
    слушать 443 ssl;
    слушать [::]:443;
    имя_сервера пример.com;

    корень /var/www/wordpress;
    индекс index.php index.html index.htm;

    журнал_доступа /var/log/nginx/example.access.log;
    error_log /var/log/nginx/example.error.log;

    место расположения / {
        try_files $uri $uri/ /index.php?$is_args$args =404;
    }

    если (!-e $request_filename){
        переписать ^/(.*)$ /index.php break;
    }

    местоположение = /favicon.ico {
        log_not_found выключен;
        доступ_лог выключен;
    }

    расположение ~ \.php$ {
        включить fastcgi.conf;
        fastcgi_pass php-wp;
    }

    местоположение / файлы {
        переписать ^/files(.*)$ http://files.example.com/files$1 перенаправление;
    }
}
Рейтинг:1
флаг gr

Этот если блокировать

если (!-e $request_filename){
    переписать ^/(.*)$ /index.php break;
}

перезапишет любой запрос для любого файла, который отсутствует на /var/www/wordpress папка в вордпресс index.php. В этом нет необходимости если заблокировать вообще, удалить его. Последний аргумент try_files директива может быть либо новым URI, либо кодом ошибки HTTP, но вы пытаетесь использовать и то, и другое. Исправьте блок корневого местоположения на

место расположения / {
    try_files $uri $uri/ /index.php$is_args$args;
}

Для перенаправления вам не нужен отдельный место расположения заблокировать, просто используйте

переписать ^/files http://files.example.com$request_uri перенаправление;

для временного перенаправления HTTP 302 или

переписать ^/files http://files.example.com$request_uri на постоянный;

для постоянного перенаправления HTTP 301.

Hipjea avatar
флаг cn
Спасибо за этот подробный ответ! Это работает отлично, и это более ясно в моем уме.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.