Tôi đang tìm để chuyển đổi mod_rewrite
quy tắc sau đây để các Nginx equivalent:Làm cách nào để chuyển đổi mod_rewrite (tùy chọn QSA) thành Nginx tương đương?
RewriteRule ^foo/(.*)$ /bar/index.php?title=$1 [PT,L,QSA]
RewriteRule ^foo/*$ /bar/index.php [L,QSA]
Cho đến nay tôi có:
rewrite ^foo/(.*)$ /bar/index.php?title=$1&$query_string last;
rewrite ^foo/?$ /bar/index.php?$query_string break;
Vấn đề là (tôi nghĩ!) Rằng chuỗi truy vấn không được nối thêm. Tôi đã không tìm thấy cách để chuyển đối số QSA
sang Nginx.
nhận xét bị xóa – Zoltan
Điều này là chính xác. Các tài liệu (tại http://nginx.org/en/docs/http/ngx_http_rewrite_module.html) nói: "Nếu một chuỗi thay thế bao gồm các đối số yêu cầu mới, các đối số yêu cầu trước đó được nối thêm sau chúng". (Lưu ý: "Nếu điều này là không mong muốn, hãy đặt một dấu chấm hỏi ở cuối chuỗi thay thế để tránh việc chúng được thêm vào") – Zoltan