@mivang

Nginx, rewrite or proxy_pass. Как из site.ru/page/ перевести в page.site.ru?

Доброго времени суток!

Конфиг nginx + php-fpm.
Сайт site.ru

Как перевести внутреннюю страницу page на поддомен? К примеру:
site.ru/page/ -> page.site.ru ?

Нужно, чтобы страница открывалась по обоим урлам, но в адресной строке, чтоб был page.site.ru
  • Вопрос задан
  • 541 просмотр
Пригласить эксперта
Ответы на вопрос 2
tonymadbrain
@tonymadbrain
doam.ru
Делаете два сервера (два виртуал хоста). Первый:
server {
    server_name  site.ru;
    location =/page/ {
      rewrite ^(.*) http://page.site.ru$1 permanent;
    }
}

и второй с поддоменом:
server {
    server_name page.site.ru;
   ...
}

Это простое но не лучшее решение.
Ответ написан
Комментировать
@mivang Автор вопроса
Проверил конфиги выше, получается так:
1-й хост при попытке зайти на site.ru/page перекидывает на page.site.ru/page/, но такой страницы нет, поэтому ошибка 404
2-й хост какие правила задать?

Если изменить 1-й конфиг, убрать $1, а во втором конфиге указать proxy_pass site.ru, то при заходе на site.ru/page перекинет на page.site.ru - что и требовалось, однако, контент будет, как на главной странице (site.ru), а не page.

1-й хост
server {
	server_name site.ru

	location =/page/ {
            rewrite ^(.*) http://page.site.ru permanent;
        }
}


2-й хост
server {
	server_name page.site.ru

	location / {
		proxy_pass  http://site.ru/;
	}
}


Если во 2-м конфиге поставить proxy_pass site.ru/page, то в результате будут ошибки с циклической переадресацией.

Как быть?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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