Điểm:0

Nginx chuyển hướng đường dẫn cụ thể đến tên miền phụ bên ngoài Wordpress

lá cờ cn

Tôi có một trang web chính sử dụng wordpress cung cấp bởi Nginx (sử dụng HTTPS https://example.com) và tôi cần chuyển hướng một đường dẫn cụ thể đến một máy chủ khác, phản hồi tên miền phụ http://files.example.com (không có SSL).

Bất cứ điều gì tôi thử, viết lại hoặc chuyển hướng 301, tôi đều đến trang lỗi 404 của Wordpress. Tôi nghĩ rằng tôi không thể thoát khỏi vị trí Wordpress trong cấu hình Nginx của mình:

người phục vụ {
    nghe 443 ssl;
    nghe [::]:443;
    server_name example.com;

    gốc/var/www/wordpress;
    chỉ mục index.php index.html index.htm;

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

    địa điểm / {
        try_files $uri $uri/ /index.php?$is_args$args =404;
    }

    nếu (!-e $request_filename){
        viết lại ^/(.*)$ /index.php ngắt;
    }

    vị trí = /favicon.ico {
        log_not_found tắt;
        truy cập_đăng xuất;
    }

    vị trí ~ \.php$ {
        bao gồm fastcgi.conf;
        fastcgi_pass php-wp;
    }

    vị trí / tập tin {
        viết lại ^/files(.*)$ http://files.example.com/files$1 chuyển hướng;
    }
}
Điểm:1
lá cờ gr

Cái này nếu chặn

nếu (!-e $request_filename){
    viết lại ^/(.*)$ /index.php ngắt;
}

sẽ viết lại bất kỳ yêu cầu nào cho bất kỳ tệp nào bị thiếu tại /var/www/wordpress thư mục vào WordPress index.php. Không có nhu cầu này nếu chặn gì cả, xóa nó đi. Đối số cuối cùng của try_files lệnh có thể là URI mới hoặc mã lỗi HTTP, nhưng bạn đang cố sử dụng cả hai. Sửa khối vị trí gốc của bạn thành

địa điểm / {
    try_files $uri $uri/ /index.php$is_args$args;
}

Để chuyển hướng, bạn không cần riêng địa điểm chặn, chỉ cần sử dụng

viết lại ^/files http://files.example.com$request_uri chuyển hướng;

để chuyển hướng tạm thời HTTP 302 hoặc

viết lại ^/files http://files.example.com$request_uri vĩnh viễn;

để chuyển hướng vĩnh viễn HTTP 301.

Hipjea avatar
lá cờ cn
Cảm ơn bạn đã trả lời chi tiết này! Điều đó đang hoạt động hoàn hảo và nó rõ ràng hơn trong tâm trí tôi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.