闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

Typecho迁移Hugo设置301跳转的方法(附Vercel设置301方法)

2021-02-16 约 1 分钟读完 搬砖秘籍
使用Hugo替换了Typecho之后,会有一系列的SEO问题,比较严重的就是404了,因为生成的某些URL可能会和之前不一致。 本文分享几个用到的方法,尽可能的减少SEO的流量损失。 URL能不变就不变 这是首要原则,Hugo默认的URL会和我们之前的伪静态不太一致。有一个比较有用的参数: uglyurls = true 用这个可以生成.html的格式。 Nginx Nginx 设置301示例: server { listen 80; server_name www.nocmt.com; return 301 http://nocmt.com$request_uri; } Apache 示例,老域名转新域名 RewriteEngine on RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=301,NC] Vercel Vercel项目可以在根目录下放置一个vercel.json,也可以实现301跳转,我使用的是这种方式,参考官方配置文档 如https://yqc.im/xxxxx.html跳转https://yqc.im/xxxxx/,代码如下: { "redirects": [ { "source": "/:slug\\.html", "destination": "/:slug/" } ] }

Hugo设置defaultContentLanguage不生效的解决方案

2021-02-16 约 1 分钟读完 搬砖秘籍
在使用Hugo做一个中文博客,但使用了一个英文的主题,需要进行一下汉化,本来挺简单的一个事情,只要在config中设置一下defaultContentLanguage,然后在主题的i18n目录下增加对应的语言code就可以了。 defaultContentLanguage = "zh-cn" # Default language to use 但我设置了之后死活也生效不了,一直打出来的都是en,我甚至一度怀疑是 Hugo 的缓存问题。 Debug 使用如下命令Debug一下 hugo config 发现出来的的确还是英文,说明我的设置没有生效。 解决方案 我使用的Hugo 0.8版本,这个版本中要想生效,需要把defaultContentLanguage = "zh-cn"放在config.toml中的第一行,问题解决,FUCK! 真实原因 上述解决方案其实有问题,真正的解决方案见这里。