首页 / NGINX / Nginx重定向到外部URL
Nginx重定向到外部URL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Nginx重定向到外部URL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1362字,纯文字阅读大概需要2分钟。
内容图文
![Nginx重定向到外部URL](/upload/InfoBanner/zyjiaocheng/967/6a8885738e6d416b9039bfe0792f04b5.jpg)
我要做的是将所有请求路由到/ rdr / extern_url,通过我的Web服务器重定向到extern_url,而不是通过PHP.
location /rdr {
rewrite ^/rdr/(.*)$$1 permanent;
}
这里有什么问题,如果我访问http:// localhost / rdr / http://google.com我的浏览器告诉我:
Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.
如何正确重定向?
解决方法:
琐碎的检查:
$curl -si 'http://localhost/rdr/http://www.google.com' | head -8
HTTP/1.1 301 Moved Permanently
Server: nginx/1.2.0
Date: Sun, 05 Aug 2012 09:33:14 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http:/www.google.com
如您所见,位置中的方案后只有一个斜杠.
将以下指令添加到服务器后:
merge_slashes off;
我们会得到正确的答复:
$curl -si 'http://localhost/rdr/http://www.google.com' | head -8
HTTP/1.1 301 Moved Permanently
Server: nginx/1.2.0
Date: Sun, 05 Aug 2012 09:36:56 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://www.google.com
从注释中可以清楚地看出,您可能希望在没有架构的情况下将主机名传递给重定向服务.要解决此问题,您需要定义两个位置以分别处理两个案例:
server {
listen 80;
server_name localhost;
merge_slashes off;
location /rdr {
location /rdr/http:// {
rewrite ^/rdr/(.*)$$1 permanent;
}
rewrite ^/rdr/(.*)$http://$1 permanent;
}
}
在这里,我将/ rdr / http://定义为/ rdr的子位置,只是为了将重定向器服务保留在一个块中 – 在服务器级创建两个位置是完全有效的.
内容总结
以上是互联网集市为您收集整理的Nginx重定向到外部URL全部内容,希望文章能够帮你解决Nginx重定向到外部URL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。