Как перенаправить запрос 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;