Puncte:0

Nginx redirecționează o anumită cale către un subdomeniu din afara Wordpress

drapel cn

Am un site principal folosind Wordpress cu sprijinul Nginx (folosind HTTPS https://example.com) și trebuie să redirecționez o anumită cale către un alt server, răspunzând la subdomeniu http://files.example.com (fără SSL).

Orice aș încerca, rescriu sau redirecționez 301, ajung pe pagina de eroare 404 a Wordpress. Cred că nu pot ieși din locația Wordpress în configurația mea Nginx:

Server {
    asculta 443 ssl;
    asculta [::]:443;
    nume_server example.com;

    rădăcină /var/www/wordpress;
    index index.php index.html index.htm;

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

    Locație / {
        try_files $uri $uri/ /index.php?$is_args$args =404;
    }

    dacă (!-e $nume_fișier_cerere){
        rescrie ^/(.*)$ /index.php pauză;
    }

    locație = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    locație ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass php-wp;
    }

    locație / fișiere {
        rescrie ^/files(.*)$ http://files.example.com/files$1 redirecționare;
    }
}
Puncte:1
drapel gr

Acest dacă bloc

dacă (!-e $nume_fișier_cerere){
    rescrie ^/(.*)$ /index.php pauză;
}

va rescrie orice cerere pentru orice fișier care lipsește la /var/www/wordpress folder în WordPress index.php. Nu este nevoie de asta dacă blocați deloc, îndepărtați-l. Ultimul argument al try_files directiva poate fi fie un URI nou, fie un cod de eroare HTTP, dar încercați să utilizați ambele. Corectați blocul locației rădăcină la

Locație / {
    try_files $uri $uri/ /index.php$is_args$args;
}

Pentru redirecționare nu aveți nevoie de un separat Locație blocați, doar folosiți

rescrie ^/files http://files.example.com$request_uri redirect;

pentru redirecționarea temporară HTTP 302 sau

rescrie ^/files http://files.example.com$request_uri permanent;

pentru redirecționarea permanentă HTTP 301.

Hipjea avatar
drapel cn
Mulțumesc pentru acest răspuns detaliat! Funcționează perfect și este mai clar în mintea mea.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.