おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Middleman でつくったブログの記事 URL を「xxx.html」で終わる形式にするか Pretty url にするか悩んだ

少し前に Middleman(及び middleman-blog を使って)で新規にブログを立ち上げたが、URL を下記のような形式にしていた。

  • http://example.com/blog/2015/06/30/101700.html

これはビルド時に 2015-06-30-101700.md というファイルから生成されるファイルで、べつに気にも留めていなかった。

しかし、設定によっては URL を http://example.com/blog/2015/06/30/101700/ という具合にディレクトリで終わる形式にできるらしいということを知って、気になったので調べてみた。

Pretty url

この http://example.com/blog/2015/06/30/101700/ というディレクトリで終わる形式を ディレクトリインデックス とか Pretty url というらしい。実際には http://example.com/blog/2015/06/30/101700/index.html というファイルが生成されていて、それが参照される。

Ugly url

一方で http://example.com/blog/2015/06/30/101700.html のように URL に .html まで含めているものを Hugo では Ugly url と呼んでいた(ちょっとヒドい)。たぶん Hugo がそう呼んでいるだけだと思うが、便宜上ここでもそう呼ぶことにする。

Pretty url と Ugly url どちらにすべきか?

ブログの URL についてどうしようか検討した。

  • (1) Middleman から他のものに移行するときが来るとして、そのときに URL を引き継ぎたいなと考えたが、そこは移行後のツールの設定でどうにかできるだろう
  • (2) .html で終わる形式は Hugo から ugly(醜い)と呼ばれているし、一方で Pretty url のほうを Middleman は「きれいな URL」という日本語訳をあてているので、界隈では Pretty url のほうがイケてるという感じなんだろうなと思った
  • (3) Middleman と jekyll はデフォルト Ugly url だけど、いずれも公式ドキュメントは Pretty url
  • (4) Hugo はデフォルトで Pretty url

僕はだいたいの場合、作者の意志を尊重してデフォルトのほうを選ぶようにしているんだけど、上のような理由(結局「なんとなく良さそう」の領域を出なかったが...)で Pretty url を選んだ

Pretty url への切り替え

設定はあっけないくらい簡単で、config.rb に下記のように指定するだけ。

activate :directory_indexes

既存の記事の URL どうする?

むしろ迷ったのは既存の記事の URL の扱いについてで、下記のようにすれば除外設定できるらしい。

page "/blog/2015/06/30/101700.html", :directory_index => false

しかし、それほどはてブつかなかった記事なので、多少の被リンクは捨てても良いかなという気持ちになって URL を変更した。

変更前の URL にアクセスが来たら変更後の URL にリダイレクトするように設定もできるけど(nginx)昨日のアクセスを見たら数アクセスしかなかったのでやめた。

いまの気持ち

記事が 10個くらい溜まったら、気分転換に Hugo を触ってみようかな。