我们最近创建了一个新网站,打破了旧网站上很多丑陋的网址。现在那些丑陋的URL得到了404响应。我们希望修复其中的一些链接,因为它们已经破坏了我们合作伙伴的网站,这些网站曾经链接到它们。
在我的nginx配置中,我有:
location = /index.cfm?pagepath=Grain_Marketing&id=15404 {
return 301 $scheme://www.[redacted].com/grain-marketing/;
}
location /index.cfm {
return 301 $scheme://www.[redacted].com/;
}
第一个位置块似乎根本不起作用。第二个确实有效。我们希望第二个作为“全部捕获”,如果它完全匹配则应该使用第一个。
我试过了:
......但似乎无法让它发挥作用。
编辑: 我现在已经尝试了这个,它仍然无效。
location /index.cfm {
rewrite index\.cfm\?/pagepath=Grain_Marketing $scheme://www.[redacted].com/grain-marketing/ permanent;
return 301 $scheme://www.[redacted].com/;
}
答案 0 :(得分:0)
没关系,我明白了。这是因为位置似乎没有看到参数。这是解决方案:
location /index.cfm {
if ($args ~* pagepath=Grain_Marketing) {
return 301 $scheme://www.[redacted].com/grain-marketing/;
}
return 301 $scheme://www.[redacted].com/;
}