Назад | Перейти на главную страницу

Nginx - перенаправляет остальные псевдонимы доменов на основной в OpenShift

Я пытаюсь навсегда перенаправить пару псевдонимов приложения в OpenShift на основной для целей SEO. В приложении запущен рабочий экземпляр Картридж Openshift Nginx.

В настоящее время у меня есть:

server {
    listen  <%= ENV['OPENSHIFT_NGINX_IP'] %>:<%= ENV['OPENSHIFT_NGINX_PORT'] %>;    

    root    <%= ENV['OPENSHIFT_REPO_DIR'] %>/public;

    location / {
        index  index.html index.htm;
    }

    server_name appname-domain.rhcloud.com;
}

server {
    listen  <%= ENV['OPENSHIFT_NGINX_IP'] %>:<%= ENV['OPENSHIFT_NGINX_PORT'] %>;    

    root    <%= ENV['OPENSHIFT_REPO_DIR'] %>/public;

    location / {
        index  index.html index.htm;
    }

    server_name main-alias.domain.com;
}

server {
    listen  <%= ENV['OPENSHIFT_NGINX_IP'] %>:<%= ENV['OPENSHIFT_NGINX_PORT'] %>;    

    server_name _;

    return 301 $scheme://main-alias.domain.com$request_uri;
}

Возвращенные заголовки HTTP:

GET / HTTP/1.1
User-Agent: curl/7.35.0
Host: another-alias.domain.com
Accept: */*
HTTP/1.1 301 Moved Permanently
Date: Thu, 17 Nov 2016 00:43:18 GMT
* Server nginx is not blacklisted
Server: nginx
Content-Type: text/html
Content-Length: 178
Location: http://another-alias.domain.com/

Как видите, заголовок Location не указывает на правильный URL.

Я мог бы решить эту проблему, удалив переменную request_uri. Но это неприемлемый ответ, если аргументы необходимо перенаправить.

server {
    listen  <%= ENV['OPENSHIFT_NGINX_IP'] %>:<%= ENV['OPENSHIFT_NGINX_PORT'] %> default_server;    

    server_name _;

    return 301 http://main-alias.domain.com;
}

server {
    listen  <%= ENV['OPENSHIFT_NGINX_IP'] %>:<%= ENV['OPENSHIFT_NGINX_PORT'] %>;    

    root    <%= ENV['OPENSHIFT_REPO_DIR'] %>/public;

    location / {
        index  index.html index.htm;
    }

    server_name main-alias.domain.com;
}