Как в Nginx сделать rewrite без изменения URL в адресной строке?

Добрый день!
Никак не могу решить следующую задачу:
Есть сайт с субдоменом, к примеру onetwo.domain.com
Нужно сделать так, чтобы при вводе адреса domain.com/one/two/ открывался сайт, указанный выше, но в адресной строке оставалось то, что ввели.
Не знаю возможно ли это, но хорошо бы еще, чтобы при вводе onetwo.domain.com, происходил редирект на domain.com/one/two/ без циклического редиректа.

Я написал такой код:
rewrite ^/one/two/ http://onetwo.domain.com/ last;
но адрес в строке меняется, т.к. нужно указывать относительный путь, но как это сделать с субдоменом не знаю.
  • Вопрос задан
  • 4324 просмотра
Пригласить эксперта
Ответы на вопрос 2
kompi
@kompi
nullstack devoops
Если на всё это на одной машине и это разные системы, то можно менять root в зависимости от хоста. Если это одна система, то можно менять через единую точку входа в зависимости от запроса, т.е. переложить работу на серверную сторону, например:
server {
   server_name domain.ru, sub.domain.ru;
   if($host = sub.domain.ru) {
       return 301 http://domain.ru$request_uri;
   }
   location / {
       try_files $uri $uri/ /index.php?h=$host&q=$uri&$args;
   }
}
Ответ написан
Ernillew
@Ernillew
Администрирую *nix-системы с 1997 года
proxy_pass и адрес останется неизменным.
То есть делаете не rewrite в location, а proxy_pass onetwo.domain.com/; получите по искому адресу то, что живет там куда proxy_pass указал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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