2022/07/06

LaCoocanでリダイレクト

備忘録的な情報を残しておきたい、というのもこのブログを再開した理由のひとつです。誰かが書いてくれたブログなどの情報に助けられることはとても多いので、せめて自分が持っている情報は見えるところに書いておこう、というわけです。特に、それを必要とする人が少ない情報ほど、こんなところに書いておく意味があると思っています。そういう情報は持っている人も少ないわけなので。...という前置きはこれぐらいにして本題に。

nshdot:labの一部の記事はLaCoocanから移転してきたものです。LaCoocan側でリダイレクトを設定しておけば、いちおう元のURLでもアクセスできます。この設定が簡単そうに見えて(実は簡単だけど)ちょっと躓くポイントがあるのでした。

LaCoocanのドキュメントによると.htaccessが使えるそうです。ただしサポートはしない、と言う割に結構細かい説明が書かれてるのですが、なぜかリダイレクトの説明だけはありません。まあ、とりあえずやってみます。

RewriteEngine on
Redirect permanent / https://lab.nshdot.com/

という内容の.htaccessをアップロード。でページを開いてみると...

500 Internal Server Error
実行エラー
CGIの実行時にエラーが発生しました

というエラーになりました。なぜCGIが出てくるのかわかりませんが、とにかくエラー。リダイレクトできないばかりか元のページも表示されません。書き方がまずいのか、改行コードがLFじゃないとだめなのか、とかいろいろやってみたけどどうやっても同じエラー。しかもキャッシュの関係で確認しづらいし。ていうかそもそもリダイレクトはできないとか?

で、しばらく悩んだ末に偶然できました! それがこれ。

Redirect permanent / https://lab.nshdot.com/

"RewriteEngine on"の行が余計だったのです。どうやらこれを使うにはmod_rewrite.cというモジュールが必要らしく、LaCoocanのWebサーバではそれがロードされてない様子。ただ単純なリダイレクトならこのモジュールがなくてもできるので、単にこれを書かなければいいだけの話でした。(よくあるリダイレクトのサンプルを見ると必ずこれがセットになっているので、必ず書くものと思いこんでいました。)

この情報を必要としてる人がどのくらいいるかはわかりませんが、一応ここに書き残しておきます。

0 件のコメント: