у меня есть http://sample.cervo02.com
. я пытаюсь получить https://cervo02.com/sample
.
Я попробовал пару перенаправлений, ни один из них не работает. 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
flag вызовет внутреннее перенаправление, а это не то, что вам нужно.
Значит, вы делаете это неправильно.
Используйте вместо этого:
server {
listen 80;
server_name "~^(?<subdomain>[^.]*)\.?cervo02.com$";
return 301 https://cervo02.com/$subdomain;
}