nginx по-разному перенаправляет корневой домен и подпуть

Я хотел бы, чтобы корень моего домена (www.domain.com) перенаправлял на определенную страницу в другом домене.

И если кто-то переходит на подпуть в моем домене (www.domain.com/something), он должен перенаправить на другой домен с тем же $request_uri.

Я пробовал следующую конфигурацию, но почему-то последний 302 всегда срабатывает.

server {
    listen 80;
    server_name server_name ~^(?<subdomain>.+)\.domain\.com$ domain.com;
    location = / {
            return 302 https://www.otherdomain.com/special/something;
    }
    return 302 https://www.otherdomain.com/$request_uri;
}

Я думаю, что, возможно, последний 302 также должен быть в блоке местоположения, который имеет эксклюзивное совпадение с /.. Но мне не удалось решить эту проблему самостоятельно.


person MaZZly    schedule 09.04.2016    source источник


Ответы (1)


Следующий код решает вашу проблему. (предполагается, что имя вашего сервера nginx — www.domain.com). Когда вы нажмете www.domain.com, он будет перенаправлен на определенную страницу, и если вы укажете путь, он будет перенаправлен на этот путь на сервере otherdomain.

  if ( $request_uri = "/" ){
       return www.otherdomain.com/special/something;
       break;
   }
return www.otherdomain.com$request_uri;
person Siva Kumar    schedule 03.05.2016