首页 > 解决方案 > 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/

请帮忙。

标签: nginxurl-rewriting

解决方案


目前还不清楚需要重写的 URL 有多复杂,但是使用您提供的两个示例,如果您将以下内容放在配置的服务器级别,它将按照您所说的进行:

rewrite ^(/sales/ref.+)/(.+) $1/ redirect;

此正则表达式将捕获/sales/refXXX/以任意数量字符开头的任何 url 并重写它以删除之后的任何内容/sales/refXXX/

X可以是任何字符。


推荐阅读