hexoブログのURL構成を変更する方法と日本語URLを入れてしまった後に変更する方法

hexoブログのURL構成を変更する方法と日本語URLを入れてしまった後に変更する方法

今回はhexoでURL書き換えを行う場合について紹介します。
 「hexoでブログを始めたけど、今使ってるURLを換えたいな〜」というときに参考にしていただければと思います。

 このブログは今までURLを https://mag.nioufuku.net/カテゴリ名/記事ID/ という構成で運用していたのですが、後からカテゴリ階層を見直したりする時とかにとても微妙だったので、その見直しを行いました。その方法を紹介します。
 (hexoでのブログ作成方法などはまた追って記事にできればと思っていますが、今回は一旦URLの書き換えに関してだけについて触れます。)

目次

  1. hexoのURL設定
  2. 日本語URLのメリット・デメリット
  3. URL書き換え方法

1. hexoのURL設定

 hexoのトップディレクトリにある _config.yml の下記の箇所で変更できます。

permalink: :category/:year/:month/:day/:title/

 上記がデフォルトの設定ですが、こちらでは /カテゴリ名/年/月/日/ファイル名(ディレクトリ含む)/ になるように設定されています。この記事では /プログラミング/2019/01/05/programming/00014-hexo-edit-url/ になります。
 だいぶ長いのでこのブログではURLを少し短めにしようと思い、以下の設定で運用していました。

permalink: :category/:id/

 この設定では、 /カテゴリ名/記事ID//プログラミング/14/ になります。


2. 日本語URLのメリット・デメリット

 上記それぞれの設定でいくと、URLの中に「プログラミング」という日本語が入ることになります。このURLに日本語が入るという状況にはメリットとデメリットがそれぞれあり、運用に合わせて考慮する必要があるということに最近気づきました。

  • メリット
     Googleの検索結果でURLが日本語で表示されるので直感的でわかりやすい。また、ページを見ているときのURLも日本語なので、直感的。

  • デメリット
     日本語はURLでは特別な文字として扱われるため、代替表記(URLエンコード)が使われます。
     「/カテゴリ名/記事ID/」はURLエンコードされると「/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E5%90%8D/%E8%A8%98%E4%BA%8BID/」になり、これだと『ちょっと怪しいURLかな?』と不審に思われるケースもありそうですね。
     また、TwitterとかではURLとして認識されないケースがある(自分はこのパターンだったので変更することにしました)。「 https://mag.nioufuku.net/カテゴリ名/記事ID/ 」とリンクしているはずが、「 https://mag.nioufuku.net/ 」で止まってしまって、トップページにしか誘導できないという悲しい状況に。。。

 他にも自分の勉強不足でメリットやデメリットもあるかもしれません、各自の運用に合わせて検討いただければと思います。


3. URL書き換え方法

 ではURL書き換え方法についてです。
 ただ、そのままURL設定だけ変更してしまうと、今までリンクされていたURLが Not Found になってしまうので、旧URLを開いた時に新URLに移動するようにリダイレクト設定を行います。
 hexoではそれを簡単に実現してくれるモジュールが提供されていますので、下記のコマンドでモジュールを追加しましょう。

$ npm install hexo-generator-alias --save

 インストールが完了すると、各記事で「alias」設定を追加すれば、旧URLに来た場合に編集中のページにリダイレクトされるようになります。この記事の設定は以下のようになっています。

id: 14
title: hexoブログのURL構成を変更する方法と日本語URLを入れてしまった後に変更する方法
tags:
- hexo
- ブログ
categories:
- プログラミング
date: 2019-01-05 15:09:12
alias: /プログラミング/14/

 試しにURLを 「 https://mag.nioufuku.net/プログラミング/14/ 」としてもらうとこのページにリダイレクトされることを確認できるかと思います。
 あとは地道に今までの記事に alias を設定していけば、URL書き換えが完了します。
 できれば記事数が少ないうちに手を打っておくことをおすすめします。

 Wordpressとかであれば、自動で旧URLから新URLにリダイレクトされるようにできたりしますが、静的なブログであれば少し工夫する必要がありますね。
 (AWSであればLambdaとかに新旧URL書き換えのスクリプトを仕込めばなんとかなりそうな気もしますが)

 以上、簡単ですがURL書き換え方法のご紹介でした。hexoでブログ運用されている方の参考になれば幸いです。