我一直试图在Nginx中重写: domain.com/one/two - > onetwo.domain.com。用户看到的URL不应在地址栏中更改。
此代码无法正常运行 - 它会更改地址栏中的网址
rewrite ^/one/two/ http://onetwo.domain.com/ last;
必须有什么解决方案? 感谢。
答案 0 :(得分:3)
这是不可能的,因为您正在更改主机名。浏览器安全性与Web服务器配置相关联。
您可以在同一主机名内重写网址,但更改主机名需要重定向或使用框架。
答案 1 :(得分:3)
使用代理传递:
location /one/two/ {
proxy_pass http://onetwo.domain.com/;
include proxy.conf;
}
在proxy.conf中,您可以保留代理设置,例如:
proxy_ignore_client_abort off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_headers_hash_max_size 1024;
proxy_headers_hash_bucket_size 128;
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_set_header REQUEST_SCHEME $scheme;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header 'SERVER_PORT' $server_port;