Nuxt.js SSGでリダイレクト

何を言ってるんだと思われるだろうが、どうしても必要だったので。
SSGするってことは、単純に全部のHTMLをレンダリングして、静的アクセスするだけってことになるんだけど、旧ページにアクセスした際どうするか問題が発生する。

SSRできれば問題ないんだけど、GithubPagesだと難しい。
基本的に旧ページは検索順位低めでいいので、空のページを用意して、そこから静的なjsを呼ぶことで解決した。

(Nuxt2 + composition-api)

import { defineComponent, useMeta } from '@nuxtjs/composition-api'
export default defineComponent({
    setup() {
        const { script } = useMeta()
        script.value = [
            {
                src: '/redirect.js'
            }
        ]
    },

    head: {},
})
const url = window.location.href;
const re = /([0-9]{4}\/[0-9]{2}\/[0-9]{2})\/(.*)\/$/;
const newstr = url.replace(re, 'blog/items/$2/');
window.location.href = newstr;

headにscriptタグ埋め込むという技。
あとはリダイレクト用のjsがうまくマッチすれば遷移するようになる。(マッチしなければなにもなし)