Dae*_*all 17 url escaping nginx
假设我想在URL中编码文章标题并包含斜杠.如果我对文章标题进行URL编码,我得到:
http://example.com/articles/foo%2fbar/view/
Run Code Online (Sandbox Code Playgroud)
NGINX将此传递给我的FastCGI应用程序,如下所示:
http://example.com/articles/foo/bar/view/
Run Code Online (Sandbox Code Playgroud)
这相当破坏了这个想法.
我注意到如果NGINX正在提供文件,比如/path/to/page.html,那么可以通过以下两个URL之一访问它:
http://example.com/path/to/page.html
http://example.com/path/to%2fpage.html
Run Code Online (Sandbox Code Playgroud)
但是(例如)Apache不是这种情况.
有没有办法解决这个问题?
我试过文档和谷歌没有运气.
谢谢.
UPDATE
nginx配置:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试将“%”转义为“%25”
http://example.com/articles/foo%252fbar/view/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5957 次 |
| 最近记录: |