主页 > 网络知识, 运维知识 > nginx重定向url但不改变url的显示内容[原创]

nginx重定向url但不改变url的显示内容[原创]

2013年1月22日 发表评论 查看评论

明月需要把http://www.gleasy.com/bbs重定向到另外连接:http://183.129.228.221:9360/bbs上面去。但要求浏览器上还要显示http://www.gleasy.com/bbs这个URL。 一开始配置了

location /bbs/ { rewrite ^/bbs(.*)$ http://183.129.228.221:9360/upload$1 last; }

结果服务器连接直接变成http://183.129.228.221:9360/forum.php了。明月在网上查了一下,发现last不改变URL这个是要求没有301,302操作。也就是先现在域名不同了,last就不启作用了。 最后明月用了下面比较迂回的方法,就是把url的内容rewrite,不包含域名。 然后针对域名做proxy_pass转发,因为用了转发,所以rewrite这里需要用break.改成这样后,就可以URL不变,重定向网页。

location /bbs/ { rewrite ^/bbs(.*)$ /upload$1 break; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://183.129.228.221:9360; }

但这种方法有个问题,一些浏览器插件会对这个网页报告警,因为这个是http302操作。被认为是不安全的网页。明月最后放弃了这个做法,直接配置了二级域名bbs.gleasy.com指向183.129.228.221的80端口,之前这个80端口已经被haproxy使用,所以在haproxy里面做了个acl判断,将bbs.gleasy.com这个域转到http://183.129.228.221:9360,这样就可以用bbs.gleasy.com访问到公司论坛了。简单好用。

原创文章,转载请注明: 转载自肚腩照明月'blog

本文链接地址: nginx重定向url但不改变url的显示内容[原创]

文章的脚注信息由WordPress的wp-posturl插件自动生成


  1. 本文目前尚无任何评论.

SEO Powered by Platinum SEO from Techblissonline