私はCodeigniter 1.7.2とHMVC(https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home)を使用しています。 。Codeigniter 1.7.2 + HMVCを使用して404ページがログに記録されない
私はこれらのファイルを持っており、それらがHMVCに応じて編成されています。routes.php
で
system/application/modules/welcome/controllers/welcome.php
system/application/modules/welcome/views/index.php
、私はルートを設定している:URLはこの中であれば
routes['welcome']='welcome/index';
すべてが動作しますパターン: http://www.mydomain.com/index.php/welcome
しかし今、私はURLからindex.phpを削除したいので、.htaccessファイルを作成しました:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
は、その後、私は空にし$config['index_page']
を設定します。
$config['index_page'] = "";
私はこのURLパターン内のページにアクセスすることができます。すべてが動作するように思われるが http://www.mydomain.com/welcome
、私はそれをすべての時間を見つけます私はページにアクセスし、ログに404ページが見つかりませんでしたエラーを生成します:
DEBUG - 2011-01-02 08:28:52 --> URI Class Initialized
ERROR - 2011-01-02 08:28:52 --> 404 Page Not Found -->
これはwelcome
ページに固有のものではありません。すべてのページに同じ問題があります。 コードを掘り下げ、この404 Page Not Found
メッセージがHMVCに付属のMX_Router.php
から生成されていることを発見しました。具体的には、次の関数から来ています。
public function _validate_request($segments) {
/* locate module controller */
if ($located = $this->locate($segments)) return $located;
/* use a default 404 controller */
if (isset($this->routes['404']) AND $segments = explode('/', $this->routes['404'])) {
if ($located = $this->locate($segments)) return $located;
}
/* use a default 404_override controller CI 2.0 */
if (isset($this->routes['404_override']) AND $segments = explode('/', $this->routes['404_override'])) {
if ($located = $this->locate($segments)) return $located;
}
/* no controller found */
show_404();
}
これは、呼び出されたので、そのエラーメッセージが表示されます。しかし、私はindex.php
が削除されているURLパターンを使用しても問題なくすべてのページにアクセスできます。
この_validate_request()
機能にコントローラが存在しないとHMVCは考えているのはなぜですか? 変更を元に戻すと404エラーメッセージがログに表示されませんが、これはまた、かなり悪く見えるindex.php
のURLパターンを使用し続ける必要があることを意味します。
誰も以前に同じ問題が発生しましたか? 多くの皆さん、ありがとうございました。
このコードを使用すると、URLにindex.phpのないページにアクセスすると、Webブラウザに「入力ファイルが指定されていません。」と表示されます。しかし、私はURLにindex.phpを追加してから問題なくページにアクセスできます。これがどんな問題か分かりません。 – bobo