概要: Amazon S3 に引っ越した空繰再繰と無貌断片の旧 URL をきちんとリダイレクトするようにした
以前、Qiita の方で、
という記事で、
- Digital Ocean を使うのをやめて自宅鯖に変更した
- その際に Amazon S3 でペラサイトのホスティングを移した
というような感じのコトをしましたよ〜とは書いていたんですが、その際に実は、
- 空繰再繰(カラクリサイクル)
- 無貌断片
のリダイレクトも設定していたんですね。
しかしながら、実際に細かい URL のリダイレクトはなんかうまく行かないとかでやってなくて、ドメインだけのリダイレクトに成ってたんですが、今回、その辺りを修正して、前の URL もきちんとリダイレクトするようにしてみました。
なので、今日はその当たりのコトを書きたいと思います。
S3 で Web サイトを丸ごと引っ越す方法
えっと、僕は最初、旧 URL の引っ越しに、Amazn S3 の XML の方のリダイレクト機能を使おうとしていました。
が、どうもアレは大量の URL のリダイレクトに対応していないっぽく、その S3 にペラサイト等を移した時には、実は Permalink とかの引っ越しは出来てなかったんですね。
で、今回、どうも S3 で大量の URL を引っ越す際には、
- 引っ越したい URL のパスに対応する空のファイルを Bucket 内に作成する
- その空のファイルにリダイレクトの設定をする
という方法を取ると、どうもうまくいくっぽい、というコトが分かったので、今回は、
- 旧新の URL の対応表を用意する
- その URL 表に従って、
s3cmd
を叩きまくる - 以上
という方法を使って、一応 URL のリダイレクトを成し遂げました。
で、 s3cmd
は最新の開発版を使っていて、インストールには、Homebrew を使って、
$ brew install s3cmd --devel
という感じでインストールを行いました。
それで、 s3cmd
の叩き方としては、大体こんな感じ:
$ s3cmd put ./empty s3://<旧ドメイン用Bucket>/<旧パス> --add-header="x-amz-website-redirect-location:<新URL>"
ポイントとしては、
- PUT するファイルには空のファイルを指定する
--add-header
引数で、x-amz-website-redirect-location
をつけるs3cmd
を叩く際には、スクリプト等で自動化する
という感じです。
で、実際に使ったスクリプトに関しては、僕のサイトやらファイルやらに特化してる書き捨てスクリプトなので、さすがに公開するのアレなんでやめておきますが、とりあえず僕は上記のような感じで旧 URL のリダイレクトを行いました。
やってみた感想
という感じで旧 URL のリンク切れを直したんですが、多分これ、むかしブクマされた URL にアクセスする時にしか役に立たない気がするです。
というのも旧 URL がリンク切れになってたのは、12 月の Qiita の記事を書いた時からなので、多分 Google にはもうインデックスされてないんじゃね? と思うからです。
まあでもブクマとかには旧 URL が残ってるので、そっちには役に立つのかな?
で、あとずーっと昔の、まだ nyarla.net/blog
時代だった空繰再繰の旧 URL も、今の Tumblr の URL にリダイレクトするようにしてみました。
っていうか、この記事を書いてる途中に作業をしてたんですが、昔のデータを掘り起こすのに時間がかかりました。もう 5〜6 年も前のブツでしたし。blog.nyarla.net
へ移ったときのデータとか残ってなかったし。
でも、とりえず出来たので満足です。
ということで以上
とりあえず今回の記事は Qiita に書こうか、とも思ったんですが、いかんせん僕の Web サイト事情に特化していたため、今回は Qiita に書くのを見送って、このブログの記事にしてみた次第です。
まあ S3 のリダイレクト機能は、把握してしまえば結構楽に引っ越し等ができるので、独自ドメインで運営してたサイトを引っ越したいんだけど……というときには、意外と使えるかと思います。
というワケで本日の記事は以上です。終わります。
#FIXME