どうもこんにちは、実はオペラ座の怪人を見たことがないさいほうへいきです!
今回はHeiki’s Boardの変更……ではないのですが、メンテナンスをいろいろしやすくなるように内部をちゃちゃっと変更したので、そのノウハウを軽くまとめておきたいと思います!
では、どうぞ。
エラーページを自動生成にした話
もともとHeiki’s Boardというウェブサービスを僕は運営しているんですが、それにはかなりの数のエラーページが用意されているんですよね。ネタ込みで。


で、今までは404.htmlとか500.htmlとかをすべて個別のページファイルとして管理していたんですが、さすがにそれだと管理が面倒といいますか、どこか共通部分に些細な誤字があったりした場合に悲惨なことになってしまうので、ここいらで方式をざっくり変えてしまいました!
どんな感じになったのかというと、たとえば404.htmlの中身はこんな感じ。
<?php
$error_code = "404";
$error_full_name = "404 Not Found";
$error_desc_short = "お探しのページは見つかりませんでしたにゃん……。";
$error_desc_long = "<p><b>お探しのページは見つかりませんでした。</b><br>" .
"アドレスが間違っているか、ページが工事中で公開されていません。</p>" .
"<p>アクセスしようとしたURLが適切なものかご確認ください。<br>" .
"以前存在したページが削除されている可能性もありますし、まだ未公開である可能性もあるので、もしご質問があればお気軽にご連絡・ご質問をください。</p>";
$place_guide = true;
require __DIR__ . "/error_page_generate.php";
?>
補足しておくと、自分のサイトでは拡張子htmlでもPHPが動作するようになっています。
えーと、こんなふうな変数定義ばっかのファイルになっているんですが、実際はこれでもきちんと404エラーページとして動作してくれています。

というのも、コードの下の方にあるrequireで読み込んでいるerror_page_generate.phpが、エラーページを自動生成するようになっています。
その上で色々と定義している変数を使って、ページを自動で組み立ててくれるわけですね!
OGP設定とかのメタデータみたいな共通部分はそちらのPHPファイルに組み込んであるので、なにか変更が必要になった時はそちらを変えるだけで一発おっけー、といった感じです。
処理は重くなるのか?
めんどくさくてろくなデータを取れていないのでなんとも言えないんですが、そこまで負担はかからないようです。
やってることは別に大量のファイル読み書きをしてるわけでも、ネットと通信を行ってるわけでもなく、せいぜい数キロバイトのテキストを生成するだけですので、アクセス数の多くない個人サイトではほぼ気にしなくてもいいレベルの処理になりそうです。
もちろん多量のアクセスが来るようになったら負担は増えますが、それはそれで当然他の部分でも負担は増えますからね。
とはいえどうしても気になるなら、キャッシュを作るなどの方法で負担軽減を図ることはできそうです。ここは今後僕もやってみたいところ。
全体的に見て、処理が増えるデメリットよりも、管理がしやすくなるメリットの方が大きそうな気はします。個人の所感ですが。
まとめ
というわけで、今回はHeiki’s Boardの内部システムの変更とざっくり紹介でした!
あまりサイト運営をしない人にはあまり有用な内容ではなかったかもしれませんが、どこかで考え方が役に立つ時があるかもしれません?


では、今回はここまで。
ありがとうございました!
さいほうへいきでした。

コメント