PR

[CakePHP] エラーページのカスタマイズ

Firefox4 で SwitchHosts を利用している。これはとても便利なのだが、突然どういうわけか特定のドメインだけ効果が無くなってしまったようだ。しかも、いくつかの環境で試したがどれも同じ結果になった。このサイト(公開されているサーバー)はCakePHP が動作している。

先日concrete5 を見つけたから他のサーバー(公開されていない)で構築しているので、hosts ファイルを操作して開発するというのは一般的な手法。hosts ファイル関連の他のソフトウェアでも環境でもダメで、レジストリやらセキュリティ設定やら見直してもダメだから問題切り分けなければならない。

まず、ブラウザが本当に意図しないサーバーにアクセスしているのかを確かめる必要がある。

SwitchHosts では意図したサーバーのIP アドレスが表示されているが違うように思う。ということで、CakePHP のエラーが表示されているからそのページにちょっと文句を付け足して、それが表示されたら間違っているということが確定する。

ちなみに他のブラウザで動作させても公開されているサーバーを参照しているようで、どうもhosts を突然無視するようになったように感じてならない・・??nslookup などでは意図したIP アドレスが表示されるが、ここに対して通信を確立していないようだ。

で、CakePHP の404 時の挙動を変更するのはどうするんだっけ?が今回の内容。

スポンサードリンク

CakePHP の動作

CakePHP で404 エラーが発生したときは \cake\libs\view\errors にある error404.ctp ファイルが表示される。これを /app/views/errors にコピーして、適当な文句を付け加えればいい。

error404.ctp

ちなみに CakePHP 1.3.3 の \cake\libs\view\errors にある error404.ctp ファイルは以下のとおり。


<?php
/**
 *
 * PHP versions 4 and 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       cake
 * @subpackage    cake.cake.libs.view.templates.errors
 * @since         CakePHP(tm) v 0.10.0.1076
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
?>
<h2><?php echo $name; ?></h2>
<p>
 <strong><?php __('Error'); ?>: </strong>
 <?php printf(__('The requested address %s was not found on this server.', true), "<strong>'{$message}'</strong>"); ?>
 </p>


※レイアウトまで変更する場合は参考文献を参考にされたし

結論としては現時点で問題を解決できていないというのと、やはり間違ったサーバーと通信しているらしい。うーむ。困った。

Firefox4 のアドオン SwitchHosts を削除したり再インストールしたりしたのだが、どうもおかしい。正常に動作していない様にも思える(今まで表示されていたメニューが表示されないなど)。

突然何が起きてしまったのだろう?全く別のFirefox4 portable を用意してテストしても同じ問題が起きる。なぜだろう????

ちなみに関連があるかどうか分からないが同時期にSignalNow Express の通信が切断されたままになった。

SignalNow Expressはプロキシーサーバーを使用するネットワーク環境ではお使いいたくことができない仕様です。
(「ストラテジー株式会社 – FAQ」より引用)

当然このへんの絡みも調べたのだが、もし関連があるとしたら通信がどこか知らぬところを経由している可能性がある。ウィルス関連も調べたが問題はなく、レジストリのhosts ファイル指定も正しかった。・・Norton あたりだったりして?

とりあえず「Firefox 5の日本語版が登場、公式サイトからダウンロード可能に – GIGAZINE」とのことで試してみた。が、現在のところSwitchHosts は利用できないらしい。

参考文献

コメント