2009-11-03 14 views
7
私は暗礁に乗り上げるとき、私は公式CodeIgniterのチュートリアルを通過した

...CodeIgniterの関数呼び出し404

tutorial私は保存して、このコードを実行していた:私は入力した場合

<?php 
class Blog extends Controller { 

    function index() 
    { 
     echo 'Hello World!'; 
    } 

    function comments() 
    { 
     echo 'Look at this!'; 
    } 
} 
?> 

をURLを次のよう

index.php/blog

それが動作し、表示の "Hello World!"。

私は次のようにコメントを表示するには、URLを変更します。

index.php/blog/comments/

私はデフォルトでは404

+0

ルーティングを使用しましたか?またはMod_rewrite? それ以外は、どうやって動かないのか分かりません。 [1]:http://codeigniter.com/user_guide/general/routing.html –

+0

これはほぼ確実にルーティングの問題です。前の手順のキャッチオールルートがないことを確認してください。キャッチオールがある場合、コントローラに正しくルーティングされません。 – treeface

答えて

1

を取得し、あなたの例では動作するはずです。 mod_rewriteを使用していないので、設定を調べて.htaccessを削除してください。

最初からやり直してください。

0

私はファイルのアップデートに関する問題です。

2

? index.phpの後で動作しますか?

http://example.com/index.php?/blog/comments 
0

私は同じ問題を抱えていました。私の最初の機能を閉鎖したことは決してありませんでした。だから私が閉じなかった機能はうまくいきましたが、それ以降のことは私に404を与え続けました。

1

application/config/config.phpの$ config ['uri_protocol']オプションを試してみる価値があります。

/* 
|-------------------------------------------------------------------------- 
| URI PROTOCOL 
|-------------------------------------------------------------------------- 
| 
| This item determines which server global should be used to retrieve the 
| URI string. The default setting of "AUTO" works for most servers. 
| If your links do not seem to work, try one of the other delicious flavors: 
| 
| 'AUTO'   Default - auto detects 
| 'PATH_INFO'  Uses the PATH_INFO 
| 'QUERY_STRING' Uses the QUERY_STRING 
| 'REQUEST_URI'  Uses the REQUEST_URI 
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO 
| 
*/ 
$config['uri_protocol'] = 'AUTO'; 

いくつかのサーバーにはさまざまなオプションの問題があるため、それぞれ手動で試してください。これはあなたのケースでは機能しないかもしれませんが、過去に私のためにその日を保存しました。

2

私はなぜこのような出来事が起こったのかよく分からずにこの古い投稿に出会った。私もあなたがした同じ明白な誤りに直面し、それを修正するために苦労していた。私は問題が以前のCIの例で設定されたルーティングから来ていることを認識しました。あなたはすでにの引数として、設定されていたもの以外に、

$['blog'] = 'blog'; 

ので、何も考えて、この行は次のとおりです。私はのconfig/routes.phpの内部に以下の行を追加しない限り、私のページが全く働いていませんでしたルート:

$route['(:any)'] = 'pages/view/$1'; 

あなたは上の行を削除した場合、それは、前のチュートリアルで行ったように、それはルート以外のすべての作業は、もはや機能しませんよ。これら二つの両方あなたはまだルートに関数を呼び出すことができ、追加で

$route['blog/(:any)'] = 'blog/$1'; 

をも取り組ん「ブログ」のコントローラを持っている:私たちは、コントローラ内の関数を呼び出すことができるようにも次の行を追加する必要がありました。 CodeIgniterののいくつかのバージョンでは

0

お使いのコントローラ名(ファイル名)は、大文字

などで開始しなければなりません。..

Blog.php 

ファイルの最初の文字が大文字でない場合、404エラーが表示されることがあります。

関連する問題