0

これは、私をただの冗談のように感じさせるものの1つです。

わかりました-それで、私はCodeigniterを始めたばかりで、URLシステムに頭を悩ませているだけです。

これが前もっていくつかの関連する構成設定です(そして私は現在MAMP / localhostにいます)

$config['base_url'] = 'http://localhost:8888/MY_SITE/';
$config['index_page'] = 'index.php';
$route['default_controller'] = "home";

私の.htaccessファイルは今のところ空白です。

だから私は「ホーム」コントローラーを持っていて、それはうまくヒットし、それは私の「home_view」をロードします。その上に私は登録リンクを持っています...

<p>Not a member yet? <a href="<?php echo site_url('registration'); ?>">Sign Up!</a></p>

これは次のHTMLとしてレンダリングされます...

<a href="http://localhost:8888/MY_SITE/index.php/registration">Sign Up!</a>

これまでのところすべて問題ありません。しかし、クリックすると「404ページが見つかりません」というメッセージが表示されます。「registration_view.php」をロードするインデックスメソッドを備えた「registration.php」コントローラーがあります。

これが私のアドレスバーに表示されているものです

http://localhost:8888/MY_SITE/index.php/registration 

なぜ私はそれを打たないのですか?

私のログは..を示しています

ERROR - 2012-11-13 18:21:12 --> 404 Page Not Found --> registration/index

..なぜ運命は私を嫌うのですか?

4

1 に答える 1

2

404の多くの考えられる最も近い理由の1つはindex()、コントローラーに機能がないことである可能性があります。コードを投稿できますか?

編集(ansが反対票を投じたので)私はもっと説明をしなければなりません。

この場合、404エラーの考えられる理由は次のとおりです-

  1. デフォルトのコントローラーはホームに設定されており、404を取得しているURLはコントローラーを呼び出していますregistration
  2. 登録コントローラーがない場合は、404を取得します。
  3. registrationデフォルトのホームコントローラーに存在する名前の関数がない場合。
  4. URIの最初の引数(index.phpの後[htaccessを使用してindex.phpを削除しない場合])は、呼び出されるコントローラーに対するものです。そして、index.phpの後の2番目の引数は、最初の引数で言及されたコントローラーから呼び出される関数です。どちらの場合も、つまりコントローラーと関数が存在しない場合は404になります。
  5. 登録が機能であり、その可視性がに設定されているprivate場合、404を取得します。

注意点として、URLを読みやすくするには、htaccessを含め、index.phpを削除するルールを追加する必要があります。

于 2012-11-13T17:45:33.143 に答える