Giả sử tôi muốn mã hóa tiêu đề bài viết trong URL và có chứa dấu gạch chéo. Nếu tôi URL mã hóa tiêu đề bài viết tôi nhận được:NGINX unescapes% 2f thành dấu gạch chéo. Làm thế nào tôi có thể ngăn chặn nó?
http://example.com/articles/foo%2fbar/view/
nginx đi này để ứng dụng FastCGI của tôi như:
http://example.com/articles/foo/bar/view/
nào chứ không phải di tích các ý tưởng.
Tôi nhận thấy rằng nếu Nginx được phục vụ một tập tin, nói /path/to/page.html, sau đó nó có thể đạt được bởi một trong hai URL sau:
http://example.com/path/to/page.html
http://example.com/path/to%2fpage.html
Tuy nhiên đây không phải là trường hợp cho (ví dụ) Apache.
Có cách nào để khắc phục hành vi này không?
Tôi đã thử các tài liệu và Google không có may mắn.
Cảm ơn.
CẬP NHẬT
nginx config:
worker_processes 1;
pid ./nginx.pid;
events {
worker_connections 1024;
}
http {
server_tokens off;
server {
listen 80;
server_name localhost;
location /mysite/{
fastcgi_pass unix: ./mysite.fcgi.socket;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SCRIPT_NAME "/mysite/";
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
}
}
}
không cấu hình nginx của bạn trông như thế nào? – Amber
Xem thêm https://stackoverflow.com/a/37584637/873282 – koppor