Posted at

言葉の正規化に伴うURLの正規化

More than 1 year has passed since last update.

例えばブログシステム上で引っ越しに関する記事をいくつか書いたとする。

それぞれタグとして「引っ越し」を設定していたのだが、いつの間にかIMEで「引越」が優先して変換されるようになってしまっており、2パターンのタグURLができてしまった。

パーマネントURL
記事名
タグ
タグURL

/post/1
荷造りの仕方
引っ越し
/tag/引っ越し

/post/2
役所への届け出
引っ越し
/tag/引っ越し

/post/3
お隣への挨拶
引越
/tag/引越

タグテーブルの情報は以下のようになっている。

ID
name

1
引っ越し

2
引越

単純「引越」タグがついている投稿のタグを「引っ越し」に付け替えれば表示上は解決するのだが、それだとタグURL「/tag/引越」の方がNot Foundになってしまうので、できれば「/tag/引っ越し」にリダイレクトさせてやりたい。

なのでタグを廃止する仕組みを用意するためにテーブルにカラムを追加する。

ID
name
normalized_id

1
引っ越し
null

2
引越
1

これで「/tag/引越」を「「/tag/引っ越し」にリダイレクトすることが可能になる。

またnormalized_idがセットされているタグが新規投稿に付与された場合は、それが非正規なタグであることを警告することも可能になるだろう。