NGINX: chỉ viết lại đường dẫn cụ thể (biến)


0

Tôi muốn viết lại một url chứa một đường dẫn biến cụ thể, chỉ cho một ip người dùng cụ thể.

http://domain.com/variable

Nên trở thành:

http://domain.com/variable/system

Tuy nhiên, nếu có một đường dẫn khác theo đường dẫn / biến thì nó sẽ không thay đổi. Vì vậy, các url sau nên giữ nguyên:

http:/domain.com/variable/something-else

Tôi đã thử đoạn mã sau

 if ($http_x_forwarded_for = xxx.xxx.x.xx) {         
           rewrite ^/(.*)$ http://domain.com/$1/system redirect;
 }

Tuy nhiên, khi chạy mã này dường như có một vòng lặp, dẫn đến

http://domain.com/variable/system/system/system/system ....

Tôi hiểu những gì sai, nhưng tôi không biết làm thế nào tôi có thể dễ dàng / chính xác sửa lỗi này. Mọi sự trợ giúp sẽ rất được trân trọng.

Câu trả lời:


2

Bạn cũng (.*)bắt được /nhân vật. Bạn cần loại trừ nó để ngăn chặn một vòng lặp.

Thử:

rewrite ^(/[^/]+)$ $1/system redirect;

Xem tài nguyên hữu ích này trên các biểu thức thông thường.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.