我需要重定向以下 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;