我在我的网站上使用 Facebook 身份验证。
我使用 Nginx 1.2.3。
Facebook 使用以下模式生成 URL:
=">https://www.mysite.net/profile.xhtml?state=dfecc191-5eb5-4e08-a514-bc70fdc17611&code=AQBKJ_1VuycE7-DPigKfrAt9BLGQJww-p0RKY_Lta6uDxsaMUgzR98soPiOD6NDZ6kyU-NJUHmpAqEOSCxOKi7UGgh0fJSfC9kyh18FtSbQNJdyNEkkfaNtP9GMC8y25W6fOjyR2fj3OnQQTFDwmm-gckqofvhJsmnPSWgHxaan7uiaz_Wgc5JcdTu2DfzhOjqUQ_QG7X14jWDdq9CUtHuSV# =
如您所见,facebook#_=_
在代码参数值的末尾添加。
现在,如果你尝试构建任何类型的带有 # 的 URL GET,NGINX 将在遇到 # 时停止解析请求,例如 this。
给出以下日志:
[16/Aug/2012:11:25:33 +0200] "GET /index.html?value1=jo HTTP/1.1" 200 4976 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.1 (KHTML,如 Gecko)Chrome/21.0.1180.79 Safari/537.1"
就我而言,Nginx 停止解析请求并从代码参数值中删除“# = ”!
任何想法 ?
谢谢。
PS:这与 Apache 配合得很好。