不久前,我写错了网址,Google 将它们缓存在旧站点地图中。这导致 WMT 中出现大量 404 错误,我需要通过彻底重写来清除这些错误。我目前使用地图模块并单独重写每个产品。
例子:
/product1html/ /product1.html;
此处的错误以粗体显示:http://域名/产品名称html/
这里的错误是我最初忘记了 html 之前的 . 而在末尾有一个 / 。
我怎样才能将 URL 重写为http://domain/productname.html
看起来像的每个 URL /productnamehtml/
。
答案1
重写后将会像这样:
rewrite ^(.*[^.])html/?$ $1.html permanent;
或者你可能想把它放到一个位置:
location ~* ^(?<product>.*[^.])html/?$ {
return 301 $product.html;
}
解释:两个正则表达式完全相同,只是后者有一个名为捕获product
。我们寻找以非点结尾的任何序列,后跟html
,后跟 (可选) /
。 之前的所有内容html
都会被捕获。