Điểm:0

Làm cách nào để chuyển hướng đến /index.php?/Test/ trong nginx?

lá cờ ru

Tôi có một máy chủ nginx. Tôi muốn chuyển hướng yêu cầu /index.php?/Test/ sang một máy chủ khác. Tôi đã thử nhiều ví dụ nhưng tôi không thành công.

Tôi đã sử dụng ví dụ:

địa điểm / {

    nếu ( $query_string = "/Ajax/" ) {

        trả về 301 http://localhost.com/index.php?/Ajax/;
    }

    vị trí /index.php*/Test/ {
        trả lại 301 http://localhost.com/Test;
    }
    
    vị trí /index.php?/Test/ {
        trả lại 301 http://localhost.com/Test;
    }

Gỡ lỗi Nginx:

022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 dòng yêu cầu http: "POST /?/Test/ HTTP/1.1"
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 http uri: "/"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 http lập luận: "/Test/"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 http mở rộng: ""
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 posix_memalign: 00005614404B1200:4096 @16
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 dòng tiêu đề yêu cầu quy trình http
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 tiêu đề http: "Loại nội dung: ứng dụng/x-www-form-urlencoding"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 tiêu đề http: "Máy chủ: my.localhost.com"
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 tiêu đề http: "Độ dài nội dung: 22"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 tiêu đề http: "Mong đợi: 100 lần tiếp tục"
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 tiêu đề http đã hoàn thành
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn chung: 0
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn viết lại: 1
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 vị trí kiểm tra: "/"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 vị trí thử nghiệm: ~ "\.php$"
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 sử dụng cấu hình "/"
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 http cl:22 max:1048576
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn viết lại: 3
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 biểu thức chính quy tập lệnh http: "^/index\.php?/Test/$"
18/03/2022 18:29:08 [thông báo] 10022#0: *12 "^/index\.php?/Test/$" không khớp với "/", máy khách: 1.1.1.1, máy chủ: my.localhost .com, yêu cầu: "POST /?/Test/ HTTP/1.1", máy chủ lưu trữ: "my.localhost.com"
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn viết lại bài đăng: 4
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn chung: 5
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn chung: 6
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn chung: 7
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn chung: 8
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn truy cập: 9
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn truy cập: 10
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn truy cập: 11
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn truy cập bài đăng: 12
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn chung: 13
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn chung: 14
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn nội dung: 15
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn nội dung: 16
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 mở chỉ mục "/var/www/test/public_html/index.php"
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 chuyển hướng nội bộ: "/index.php?/Test/"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 giai đoạn viết lại: 1
18/03/2022 18:29:08 [gỡ lỗi] 10022#0: *12 vị trí kiểm tra: "/"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 vị trí thử nghiệm: ~ "\.php$"
2022/03/18 18:29:08 [gỡ lỗi] 10022#0: *12 sử dụng cấu hình "\.php$"
    

Tôi muốn chuyển hướng tất cả yêu cầu đến máy chủ khác theo cùng một cách hoàn thành.

drookie avatar
lá cờ za
Các '?' nghĩa đen là một dấu phân cách đứng giữa các đối số URI và GET. Nhận đối số được lưu trữ trong $arg_ biến, không phải trong $query_string; hơn nữa trong trường hợp của bạn, tên của đối số Get không đúng định dạng vì nó bắt đầu bằng dấu gạch chéo, vì vậy bạn không thể tham chiếu nó. Đó là một số yếu tố dẫn bạn đến sự thất bại.
lá cờ us
Tôi đã định dạng lại đoạn cấu hình mà bạn có trong câu hỏi của mình. Bạn có chắc nó giống như vậy không? Nó thiếu dấu đóng `}` cho vị trí gốc.
djdomi avatar
lá cờ za
tôi đồng ý với Drookie, Nhưng xin lưu ý rằng, liệu có thể sử dụng tên miền phụ cho yêu cầu của bạn không? vì về cơ bản nó giữ nguyên cấu trúc nhưng có thể proxy_pass'ed sang một máy chủ khác
M. Jeremy avatar
lá cờ ru
@droookie cảm ơn bạn đã trả lời. Tero Kilkanen: Tôi đã thêm vào dòng mã, thẻ đóng ở bên dưới. Tôi xin lỗi. djdomi: Tôi đã làm và thử nhưng không được.

Đă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.