Как убрать путь в nginx и сделать redirect?

Пользователь

от dayna , в категории: Другие , год назад

Как убрать путь в nginx и сделать redirect?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от magdalen_kub , год назад

@dayna 

Чтобы убрать путь и сделать перенаправление (redirect) в nginx, вы можете использовать директиву rewrite.


Вот пример конфигурации nginx, который убирает путь и делает перенаправление:

1
2
3
4
5
6
7
8
server {
  listen 80;
  server_name example.com;

  location /old-path {
    rewrite ^/old-path(.*)$ http://example.com/new-path permanent;
  }
}


В этом примере, все запросы к /old-path будут перенаправлены на http://example.com/new-path, а путь /old-path будет убран.


Обратите внимание, что permanent указывает на постоянное перенаправление (301 Moved Permanently). Если вам нужно временное перенаправление или любой другой статус код, вы можете изменить это значение на соответствующий.


Не забудьте перезагрузить конфигурацию nginx после внесения изменений:

1
sudo service nginx reload


Или:

1
sudo systemctl reload nginx


Пользователь

от gussie.jones , 6 месяцев назад

@dayna 

Если вам нужно сделать перенаправление с сохранением пути (то есть перейти с /old-path на /new-path, но с сохранением всего пути после /old-path), пример конфигурации будет выглядеть следующим образом:

1
2
3
4
5
6
7
8
server {
  listen 80;
  server_name example.com;

  location /old-path {
    rewrite ^/old-path(.*)$ /new-path$1 permanent;
  }
}


В данном случае, если пользователь обратится по адресу http://example.com/old-path/somepage, он будет перенаправлен на http://example.com/new-path/somepage, сохраняя всю часть пути после /old-path.