再次探讨关于自定义URL尾部加斜杠“/”的问题。
我的网站后台添加页面自定义设置的url,后面都没有添加斜杠“/”,因为程序原因,也不能添加斜杠“/”。
我在htaccess中做了301重定向,打开网址自动在后面添加“/”。
结果百度把有斜杠和没有斜杠的两个url全部收录。
这样必会分散权重,不知道各位朋友是否有碰到这样的问题。
请问如何解决这个问题?
比如我的网站 www.youhua.com/didi 是个列表页,那么我想访问输入www.youhua.com/didi 自动跳转到www.youhua.com/didi/
这样不会被分散权重,那么就得需要nginx做301重定向了
具体写法如下
location ~* ^/[a-z]+$ {
rewrite ^/(.*)([^/])$ $scheme://$host/$1$2/ permanent;
}
^/[a-z]+$ 就是匹配英文字母的目录,这样本来 www.youhua.com/didi/ 不会被301,然而www.youhua.com/didi会301到www.youhua.com/didi/
还有更复杂一些的写法,不过都是一些正则匹配的规则
比如我想 www.youhua.com/user-55 到 www.youhua.com/user-55/ 那么写法如下:
location ~* ^/user-[0-9]+$ {
# return 302 https://www.baidu.com;
rewrite ^/(.*)([^/])$ $scheme://$host/$1$2/ permanent;
}
再就是没有html的详情页自动跳转到带有html的页面
www.youhua.com/user-10/article-188 ====> www.youhua.com/user-10/article-188.html
location ~* ^/user-[0-9]+/article-[0-9]+$ {
rewrite ^/(.*)([^/])$ $scheme://$host/$1$2.html permanent;
}