nginx - nginx重写规则删除以下字符
问题描述
我不是重写专家,我遇到了 nginx 重写规则的问题,我得到了 URL:
www.mydomain.com/sales/reference/appartement-2-bedroom-city-miami/
我需要获得最终网址,例如:www.mydomain.com/hello/reference/
所以我需要删除最后 2 个之间的所有字符 / 我需要删除 /apartement-2-bedroom/ 并只替换一个 / 当然在这个例子中我有 /appartement-2-bedroom-city-miami/ 但那不一样,每个网址都不一样。
下面有很多我想要的例子:
www.mydomain.com/sales/ref-458/appartement-2-bedroom-city-miami/ 必须变为:www.mydomain.com/sales/ref-458/
另一个例子:
www.mydomain.com/sales/ref-455/appartement-3-bedroom-with-terrace-city-miami/ 必须变为:www.mydomain.com/sales/ref-455/
请帮忙。
解决方案
目前还不清楚需要重写的 URL 有多复杂,但是使用您提供的两个示例,如果您将以下内容放在配置的服务器级别,它将按照您所说的进行:
rewrite ^(/sales/ref.+)/(.+) $1/ redirect;
此正则表达式将捕获/sales/refXXX/
以任意数量字符开头的任何 url 并重写它以删除之后的任何内容/sales/refXXX/
X
可以是任何字符。
推荐阅读
- r - 在 r 中,如何控制组合图中 (plot_grid) 中图与 x 轴的比例?
- git - 我的全栈应用程序文件没有上传到 GitHub,git add 挂了?
- javascript - 如何转换为json字符串
- flutter - Flutter 2:在 ThemeData 中存储渐变
- python - 如果数据框单元格不包含列表中的单词,则清除它
- amazon-web-services - 如何防止 terraform 询问在 AWS Secrets Manager 上设置的变量的值?
- if-statement - 如何修复这种非法的表达之星?
- typescript - 具有特定编号的函数重载
- java - javax.xml.ws.soap.SOAPFaultException:无法从 SOAP 消息上下文和 javax.xml.stream.XMLStreamException 确定操作名称
- mysql - 如何在使用 mysql npm 的查询中将 *array of objects* 从 MySQL 返回到 Node js 服务器?