【发布时间】:2016-04-26 09:01:44
【问题描述】:
我们不久前重新启动了我们的 wordpress 网站,我正试图消除我们的谷歌爬虫错误。
我们在带有简单模式的引用 URL 上出现了 10k 多个错误。编写一个小脚本并一个一个地修复它们很容易,但我在想是否可以通过 nginx 服务器配置中的一个简单的重写规则来解决这个问题
旧模式: {slug}/{id}/trackback
应该重定向到:{slug}
遗憾的是,我不擅长正则表达式,并且在编写重写规则方面经验不足。我所知道的是我应该有一个位置告诉 nginx 何时执行所需的重写规则,我正在考虑这样的事情
location ^.*/trackback {
rewrite ^.*/[0-9].*/trackback /$1
}
当我尝试这条规则时,我在重启 nginx 时收到 unexpected "}" 错误消息
另外,位置模式与重写语句非常相似,对我来说看起来很可疑,也许有更好的解决方案?
更新
当前版本:
location ~^(.*)/trackback {
rewrite ^(.*)/[0-9]+/trackback $1 last;
}
语法问题已解决,但规则不适用/未触发 这里是一个例子
/my-test-article/12312/trackback 现在应该被重定向到
/my-test-article
但事实并非如此
更新 2
这个正在工作(将 last 更改为 redirect 并转义了斜线)
location ~ ^(.*)\/trackback {
rewrite ^(.*)\/[0-9]+\/trackback $1 redirect;
}
【问题讨论】:
-
您可以通过将
last更改为redirect来尝试外部重定向。 -
@RichardSmith 是的!就是这样,谢谢!会更新我的帖子