我有http://sample.cervo02.com 。 我正在尝试获取https://cervo02.com/sample 。
我试过几个redirect他们都没有工作。 rewrite ^([^.]*)$ https://cervo02.com/$1 last; 返回https://cervo02.com//
另一个是rewrite ^([^.]*).cervo02.com$ https://cervo02.com/$1 last; 返回一个404和URL不会被重写。
完整的服务器主机定义
upstream backend { server 192.167.1.79:8080; } proxy_cache_path /tmp/cache levels=1:2 keys_zone=my-test-cache:8m max_size=5000m inactive=300m; server { listen 80; server_name sample.CERVO02.com; rewrite ^([^.]*)$ https://cervo02.com/$1 last; } server { listen 443 ssl spdy; server_name CERVO02.com; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_pass http://backend;# backend c'est pas une variable proxy_cache my-test-cache; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; proxy_cache_use_stale error timeout invalid_header updating; proxy_redirect default; } }
任何帮助,欢迎再次感谢。
rewrite指令regex将匹配标准化的请求URI,而server_name指令将匹配域名。 last标志将强制内部redirect,这不是你想要的。
所以你做错了。
用这个代替:
server { listen 80; server_name "~^(?<subdomain>[^.]*)\.?cervo02.com$"; return 301 https://cervo02.com/$subdomain; }