Я пытаюсь навсегда перенаправить пару псевдонимов приложения в 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;
}