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