【问题标题】:nginx rewrite rules remove following charactersnginx重写规则删除以下字符
【发布时间】:2018-09-26 04:10:08
【问题描述】:

我不是重写专家,我遇到了 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/ 但它永远不会相同,每个 url 都是不同的。

下面有很多我想要的例子:

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/

请帮忙。

【问题讨论】:

    标签: nginx url-rewriting


    【解决方案1】:

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

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

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

    X 可以是任何字符。

    【讨论】:

    • 其实我只知道 ref 是一个数字,所以 URL 是:www.mydomain.com/sales/2018-45/appartement-3-bedroom-with-terrace-city -miami/,那么在这种情况下,重写规则是什么?
    • 如果你从中删除ref就会出现
    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多