首页 > 解决方案 > nginx转义(+)登录重写规则

问题描述

我正在尝试根据我的 Nginx 配置中的图像名称重定向一些点击。

这是它现在的样子:

        location / {

                rewrite ^/static-v3/(.*)/creditcard_sslseals_public.png https://somenewurl.com/credit-card-seals.png permanent;
                rewrite ^/static-v3/(.*)/creditcard+sslseals_public.png https://somenewurl.com/credit-card-seals.png permanent;

                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

所以文件名的第一个条件creditcard_sslseals_public.png正常工作,但第二个条件不工作,因为+图像名称中有一个符号creditcard+sslseals_public.png,所以我得到一个 404。

如何在第二种情况下逃避 + ,但在之前保留正则表达式^/static-v3/(.*)

标签: nginxnginx-config

解决方案


+正则表达式中有特殊含义,需要转义。

一种选择是使用反斜杠来转义字符:

^/static-v3/(.*)/creditcard\+sslseals_public.png

或者,创建一个只包含一个字符的字符类:

^/static-v3/(.*)/creditcard[+]sslseals_public.png

推荐阅读