Как перенаправить запрос http на другой URL с помощью nginx?

Мне нужно перенаправить следующий URL:

http://www.example.com/product/product-name/1234

в

http://www.example.com/details/product.jsp?pid=1234

Может ли кто-нибудь помочь мне в этом? Мы используем nginx 1.1.19. Кроме того, нам нужно перенаправление на стороне сервера (URL-адрес в браузере на стороне клиента должен оставаться первым), а не HTTP-пересылка.

Благодарю.

============== добавить дополнительную информацию для отладки:

В файле details / product.jsp у меня есть что-то вроде этого:

<link href="../docs/assets/css/bootstrap.css" rel="stylesheet">

И файл bootstrap.css находится в / usr / share / nginx / www / docs / assets / css /. Однако, когда я использую правило перезаписи:

rewrite ^/product/product-name/(\d+)$ /details/product.jsp?pid=$1;

Корневой каталог каким-то образом становится / www / product, поэтому details / product.jsp пытается найти bootstrap.css в:

/usr/share/nginx/www/product/docs/assets/css

что приводит к ошибке "файл не найден" в журнале.

Надеюсь, выше информация помогает.

1 ответ

Если бы вы сделали какой-то базовый поиск, вы бы нашли модуль перезаписи nginx, который обеспечивает rewrite директивы.

rewrite ^/product/product-name/(\d+)$ /details/product.jsp?pid=$1;
Другие вопросы по тегам