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

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

Сейчас у меня:

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.

0
задан 17 November 2016 в 03:01
1 ответ

Я мог решить эту проблему, удалив переменную 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;
}
0
ответ дан 5 December 2019 в 09:10

Теги

Похожие вопросы