Nginx viết lại quy tắc để loại bỏ nút đường dẫn


20

Giả sử người dùng cố gắng truy cập một hình ảnh nhất định trên trang web của tôi bằng url sau: http://www.mywebsite.com/blog/image1.jpg?someParam=100

Tôi cần một quy tắc viết lại cho điều này, loại bỏ nút 'blog' khỏi đường dẫn:

http://www.mywebsite.com/image1.jpg?someParam=100

Câu trả lời:


27

Hãy thử cái này:

location /blog {
 rewrite ^/blog(/.*)$ $1 last;
}

Nếu bạn cần điều này cho nhiều hơn một trang web, bạn không thể đặt nó cao hơn trong phân cấp vì mệnh đề "vị trí" không thể được chỉ định trên toàn cầu, chỉ dành cho trang web cụ thể. Nếu bạn cần thêm mệnh đề này cho hai trang web trở lên, bạn có thể đặt tệp cấu hình khác và sau đó chỉ "bao gồm" nó trong mỗi trang web cần chuyển hướng này.


Điều này làm việc trong cùng một máy chủ. Làm thế nào để làm cho nó hoạt động cho các tên miền khác nhau?
Tự động hóa

1
Chỉ cần bao gồm các tên miền mới như một phần của viết lại: rewrite ^/blog(/.*)$ https://blog.example.com$1 permanent;
Christophe
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.