我遇到了一个问题,有人在我们的网站上添加了一个链接,但该链接被切断了。我在日志文件中看到:
/info-cry%E2%80%A6
我知道这意味着什么,所以我尝试在网站的 nginx 配置中为其创建重写规则。我尝试了以下两种方法:
rewrite ^/info-cry%E2%80%A6 https://example.com/info-cryptex-16gb-usb-drive-587.html permanent;
rewrite ^/info-cry… https://example.com/info-cryptex-16gb-usb-drive-587.html permanent;
..但它从不匹配(只显示我们的自定义 404 页面)。有什么办法可以实现这一点吗?我真的很想让它工作 - 因为我们收到了很多对损坏 URL 的点击
答案1
这很奇怪。在 Ubuntu 15.04 的 nginx 1.6.2 上,所有默认模块都可以做到
location / {
rewrite ^/foo… http://example.com permanent;
}
...并获得预期的重定向。
假设你已经重新加载了 nginx 并禁用了浏览器缓存,你确定重写发生在匹配的位置块中吗/info-cry…
?你也有可能可能需要添加 (*UTF8)
到定义位置块的正则表达式。