我是nginx的新手,我正试图找出重定向的问题。我正在尝试将网站从运行Web应用程序的主机重定向到另一个域。那部分我已经完成但我想掩盖它。当它重定向时,我不希望用户知道他们已经去了另一个域。
我已将域名替换为我的客户隐私。但是,他们正在test.com上的Linode上运行一个位于sub.test.com的Web应用程序。我想要的是访问test.com的任何用户被重定向到在other.com上托管的临时站点,但不会暴露域。
以前,有人告诉我该怎么做但是很久以前我不再有参考资料了。有人可以帮我吗?我不想暴露测试环境的域。
server {
listen 80;
server_name www.test.com test.com www.test.net test.net;
rewrite ^ http://other.com/sub redirect;
location / {
root /srv/http/www.test.com;
index index.html;
}
}
答案 0 :(得分:3)
你不能用重定向来做到这一点,因为重定向实际上就像告诉浏览器从哪里获取页面,所以你不能模糊真实的位置。 我想你需要的是代理,例如客户端从您的服务器(test.com)请求一些文档,然后您的服务器从其他服务器(other.com)获取文档并将该文档返回给客户端,就好像它是在test.com上生成的那样 - 这种情况下客户将无法确定文件的实际来源。
这可以通过以下方式完成:
server_name test.com;
location / {
proxy_pass http://other.com;
}
答案 1 :(得分:0)
如果您希望重定向不更改用户可见的域名,则需要通过更改重写将其从301更改为302:
rewrite ^ http://other.com/sub redirect;