rewrite ^/(.*).html/$ /$1.html permanent;
额外补充一下 apache 的规则(未作测试,凭经验写的,有需求的自己调试吧!):
RewriteRule ^(\.*)\.html/$ $1.html [R=301,L]
现在再遇到往 html 后面添加一个斜杠的情况,就会自动 301 跳到不带斜杠的 html 页面,本以为问题解决了,没想到这哥们又说了,带 N 个斜杠还是可以访问,也不会跳转!
我次奥,还真是!试了一下别人的网站,比如卢松松的留言板,多加几个斜杠同样是可以访问的,既然他的网站 SEO 无碍,我们也就没什么好担心的了!
不过,我还是试了一下写相应的匹配规则,无奈正则匹配了半天多斜杠形式都没效果,最后我想到了另一个解决办法,那就是利用 robots 禁止搜索引擎抓取这种形式的路径,规则如下:
User-Agent: * #其他规则已省略. Disallow: /*// Disallow: /*.html/
哦了,相信这样就可以解决追加斜杠仍然可以访问带来的 SEO 隐患了!
最新补充:偶然在日志发现蜘蛛居然经常爬 https://zhang.ge/about/22222244445555 这种链接,明明不存在,但又确实可以访问!只要继续新增 nginx 规则如下:
rewrite ^/([a-z-A-Z]+)/(\d+)$ /$1/ permanent; rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/(\d+)$ /$1/$2/ permanent;
搞不懂蜘蛛是怎么想,反正挺坑爹!