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 を触ってみようかな。