标签:nginx internet-explorer webserver user-agent
如果user-agent是MSIE 6并且显示自定义错误消息,我希望nginx返回错误403.
我使用了这段代码,一切都在第一分钟完成.然后它只是在没有消息的情况下返回错误!不知道为什么……
这是代码(我试图把’而不是’,没有’或’的纯文本,仍然没有运气):
location ~ \.php${
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
if ($http_user_agent ~ "MSIE 6" ) {
return 403 "Browser not supported. Please update or change to another one.";
}
}
编辑:忘了说它在php块中,因为我想阻止MSIE 6仅用于PHP请求.
解决方法:
实际上,您的配置应该可行.你可以用curl检查它:
# curl -i -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1" http://localhost/i.php
HTTP/1.1 403 Forbidden
Server: nginx/1.3.6
Date: Wed, 26 Dec 2012 10:05:34 GMT
Content-Type: application/octet-stream
Content-Length: 62
Connection: keep-alive
Browser not supported. Please update or change to another one.
访问日志也值得检查(默认情况下,log_format包含$http_user_agent变量).
顺便问一下,/ etc / nginx / fastcgi.conf中有什么?
另一件事是,如果你想让真正的MSIE 6浏览器的人看到你的消息,你最好做这样的事情:
location ~ \.php${
...
if ($http_user_agent ~ "MSIE 6" ) {
return 403;
}
error_page 403 /old_browser.html;
}
并使用您的消息创建old_browser.html.请注意,此文件应大于512字节,以确保MSIE将显示其内容而不是一些标准的IE 403消息.像http://browsershots.org这样的工具非常适合调试这种情况.
标签:nginx,internet-explorer,webserver,user-agent 来源: https://codeday.me/bug/20190704/1372248.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。