В Nginx я хочу перенаправить запрос поддомена с request-uri на поддомен, но если в нем нет request-uri, следует перенаправить на основной домен - PullRequest
0 голосов
/ 09 ноября 2018

Моя постановка задачи:
мой домен: example.com
поддомен: main.example.com

когда мы получим доступ:
1. http://main.example.com/xyz или https://main.example.com/xyz:
Он должен быть перенаправлен на https://main.example.com/xyz

  1. http://main.example.com или https://main.example.com:
    Он должен быть перенаправлен на https://www.example.com

Я использую nginx. Каким будет файл конфигурации для сервера Nginx?

Моя текущая настройка:

server{
        listen 443;
        ssl on;
        ssl_certificate /var/www/html/demo.crt;
        ssl_certificate_key /var/www/html/demo.key;
        server_name main.example.com$request_uri;

       location / {
                root /var/www/html;
                index  index.html index.htm;
                try_files $uri $uri/ /index.html;
        }
}

server {
    listen 80;
    server_name main.example.com$request_uri;
    return 301 https://main.example.com$request_uri;
}

server {
    listen 80;
    server_name main.example.com;
    return 301 https://www.example.com;
}

server {
    listen 443;
    server_name main.example.com;
    return 301 https://www.example.com;
}

1 Ответ

0 голосов
/ 09 ноября 2018

Попробуйте

server{
    listen 80;
    listen 443 ssl;
    server_name          main.example.com;
    ssl_certificate      /var/www/html/demo.crt;
    ssl_certificate_key  /var/www/html/demo.key;

    location / {
        proxy_pass https://www.example.com;
    }

    location ~ ^(/.+) {
         return 301  https://main.example.com$1;
    }
}

http://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...