修改WordPress分类目录和页面链接以斜杠/结尾,附nginx对应的301跳转设置方法

当WordPress的文章固定连接设置为html结尾后,WordPress的分类目录和页面链接将变成以名称结尾的形式,比如http://zhangge.net/liuyan,而不是以斜杠 / 结尾。

修改WordPress分类目录和页面链接以斜杠/结尾,附nginx对应的301跳转设置方法

一直以来也没纠结过这个问题,最近换成百度云加速之后,发现这种形式链接无法被缓存,而免费版的强制缓存项目只有5个!找客服问了下,告知要以斜杠结尾,才会识别为目录并开启缓存加速。修改WordPress分类目录和页面链接以斜杠/结尾,附nginx对应的301跳转设置方法

搜了下WordPress给末尾加上斜杠的方法:

①、插件法:安装Permalink Trailing Slash Fixer插件即可。

②、代码法:在老朋友爱兵博客找到了可用代码,如下:

将以上代码加入到主题function后,所有分类目录和单页面链接末尾都已成功添加了斜杠。这才是目录的形式嘛!

为了做好SEO,经验告诉我,有必要将以前末尾不带斜杠的链接都做好301,跳转到带斜杠的新链接,以免搜索引擎重复收录相同内容,影响权重啥的。

参考已有的nginx跳转规则,试了半天都没搞定,最后发现我一直在修改一个不相关的配置文件!我勒个去!

下面就贴上以上跳转相应的nginx设置方法:

编辑nginx配置文件,在如下注释位置新增301规则(8-9行)即可。

修改WordPress分类目录和页面链接以斜杠/结尾,附nginx对应的301跳转设置方法

Ps:lnmp一键安装包,这个配置文件路径一般是/usr/local/nginx/conf/vhost/域名.conf

保存后,执行 /usr/local/nginx/sbin/nginx -s reload 平滑重启nginx即可生效。

修改WordPress分类目录和页面链接以斜杠/结尾,附nginx对应的301跳转设置方法

效果预览:http://zhangge.net/liuyan

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:28   其中:访客  19   博主  9

  1. 亿品元素 2 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    我现在也想把原来不带斜杠的目录,tag,page等都换成带斜杠的地址,请教一下apache的301规则改如何写??

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 北京市 联通云BGP数据中心

      其实规则不是差不多么?对比一下应该也能依葫芦画瓢的试出来,我也没apache环境做测试,下面是凭经验写的,放到.htaccess的最前面试试。

      • 亿品元素 2 来自天朝的朋友 谷歌浏览器 Windows XP 广东省广州市 电信

        已经测试好像没用,不过我在网上找了一段
        RewriteEngine On
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_URI} !(.*)/$
        RewriteRule ^(.*)$ http://www.sample.cn/$1/ [L,R=301]
        可以用,不过问题这段又会自动为html加斜杠?怎么样将二者结合一下??

  2. tofree 1 来自天朝的朋友 火狐浏览器 Windows 7 广东省深圳市 电信

    页面为什么不能自动加斜杠?只有分类和TAG可以。还有,为什么我的301跳转没反应,同样NGINX端

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      留言头像无链接,一律不回答。

  3. 小武 6 来自天朝的朋友 谷歌浏览器 Windows 8.1 辽宁省大连市 电信

    今天想到目录的问题. . 百度一搜搜索. .来到了你的博客. .其实你的代码已经实现了 301 .. 没必要在nginx或apache服务器上再次写301规则了

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 8.1 广东省深圳市 电信

      那就不知道了,反正不加就2种都可以访问。我看了下php代码貌似没有跳转的吧

      • 小武 6 来自天朝的朋友 谷歌浏览器 Windows 8.1 辽宁省大连市 电信

        我只在functions.php 中增加了你文中的代码, 访问结尾无斜杠的url自动301到带斜杠的url了. apache中没写相关的规则

  4. spider 0 来自天朝的朋友 谷歌浏览器 Windows 7 重庆市 电信

    值得借鉴,有点小瑕疵,如果目录名存在数字的话不能跳转,建议在表达式中加上0-9

  5. 聚宝盒 2 来自天朝的朋友 谷歌浏览器 Windows 7 福建省厦门市 联通

    用了,目录可以会加上了斜杠,NGINX没有写301规则也能自动跳转,只是TAG也加了斜杠。不这么想~

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

      确实 tag有这个问题,回头改善下。

  6. 软件海 3 来自天朝的朋友 谷歌浏览器 Windows 8.1 陕西省西安市 电信

    我的网站301定向正确,百度目前只收录不带WWW的,唉

  7. 暴露智商 1 来自天朝的朋友 谷歌浏览器 Windows 7 江苏省南京市 电信

    我用的Yoast SEO这个插件
    强制所有分类页及标签页URL以“/”结尾

    但是貌似…只有谷歌浏览器会自动301到“/”,360浏览器不行,加上你的规则之后成功了!谢谢!

  8. 世界之最 3 来自天朝的朋友 谷歌浏览器 Windows 7 山西省长治市 联通

    设置了301跳转,但是不带斜杠的还是可以访问,如下,不知道什么原因,http://lishi.dugoogle.com/knowledge-3122

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省深圳市 联通

      因为knowledge-3122里面有一个横杠,不匹配a-z

      • 世界之最 3 来自天朝的朋友 火狐浏览器 Windows 7 湖北省武汉市 联通

        谢谢,能不能请教下,我这种模式要怎么设置了

        • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

          ^/([a-z-A-Z-0-9]+)$

          ^/([a-z].*)$

          • 世界之最 3 来自天朝的朋友 火狐浏览器 Windows 7 湖北省武汉市 联通

            rewrite ^/([a-z].*)$ http://lishi.dugoogle.com/$1/ permanent;
            rewrite ^/([a-z].*)/([a-z].*)$ http://lishi.dugoogle.com/$1/$2/ permanent;

            这样写了,还是不行,难道放错地方了,我是放在location / {里的啊

            • 世界之最 3 来自天朝的朋友 火狐浏览器 Windows 7 湖北省武汉市 联通

              把这行代码加到server {)中,终于可以了,不知道为什么,另外再请教下,
              这段什么意思,需要加吗
              try_files $uri $uri/ /index.php?$args;
              if ($http_user_agent ~ “^$”){
              set $rule_0 1$rule_0;
              }
              if ($rule_0 = “1”){
              return 403;
              break;
              }

              • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

                你这代码和这个跳转没啥关系。。。
                这个try-files是nginx下兼容WordPress固定链接伪静态的
                下面则是禁止UA为空的请求,避免采集和攻击

  9. 杨修旭SEO 1 来自天朝的朋友 火狐浏览器 Windows 8.1 河北省石家庄市 电信

    已经闻到满满的解决问题的味道,谢博主 :mrgreen:

  10. 杨修旭SEO 1 来自天朝的朋友 火狐浏览器 Windows 8.1 河北省石家庄市 电信

    我遇到的问题只是不能把不带斜杠的分类目录跳转到带斜杠的分类目录URL中去,我也想请教一下,这种跳转可以用.htaccess文件实现吗?

  11. 笨驴励志 2 来自天朝的朋友 搜狗浏览器 Windows 7 甘肃省兰州市 联通

    wordpress升级到php5.5的时候,网站文章链接自动添加斜杠/并且跳转到首页,张哥请教怎么回事呀?

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 电信

      测试没问题啊

  12. 花色伊人 1 来自天朝的朋友 火狐浏览器 Windows 7 广东省佛山市三水区 电信

    已解决

  13. 北极 0 来自天朝的朋友 谷歌浏览器 Windows 7 广东省清远市 铁通

    请教一下,我发现这个会给tag也加上斜杠,但是如果tag是中文的,加上斜杠后会导致无法被WP Super Cache缓存,英文tag就没这个问题,不知道怎么让他不给tag加斜杠?

  14. 心动一下 0 来自天朝的朋友 谷歌浏览器 Windows 10 广东省东莞市 电信

    大佬,网站目录去掉了category,但www.xxx.com/category/abc/ 还能访问,怎么做301.好像博主的目录也没有做301

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省广州市 电信

      已修复,nginx加上如下规则即可:

加载中,请稍候...