如何使用 nginx 将 http 请求重定向到不同的 URL?

如何使用 nginx 将 http 请求重定向到不同的 URL?

我需要重定向以下 URL:

http://www.example.com/product/产品名称/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;

相关内容