1

基本的に、1つのコントローラー(controller / topics.php、http ://192.168.1.50/topics )は、想定どおりにCIのindex.phpを通過し、さらに別のコントローラー(controller / user.php、http ://192.168.1.50/user)が通過します。 )なんらかの奇妙な理由で単に合格しません(ブラウザで404エラーが発生します)。CodeIgniterおよび/またはApache2は何かファンキーなことをしていて、それを理解できません:'... / user'はApacheの404ページを表示しますが、'... / User'はCIの404ページを表示します。これは、CIがURIを取得することを意味します。大文字のコントローラー名であり、小文字のコントローラー名を持つ一部のURIを無視します(その後、ApacheはURIを処理しようとします)。

なぜ、どのように解決するかについてのアイデアはありますか?

PS-はい、私は自分の問題をCIのフォーラムに投稿しましたが、彼らの助けを借りて運がありません。Linuxディストリビューション(Ubuntu 10.10 with LAMP)でCodeIgniter2.0.2を実行しています。

4

4 に答える 4

1

問題は、書き換え条件の構文が、名前がi、c、j、またはuのフォルダーではなく、i、c、j、またはuで始まるフォルダーをルーティングしないことを示していることでした。偶然にも、ロードされなかった私のコントローラー名は、i(アイデア)とu(ユーザー)で始まりました。

静的フォルダーの名前をフルネーム(「u」ではなく「uploads」)に変更し、書き換え条件を更新してこの問題を解決することもできますが、名前は同じままにしておきます。正確な名前に一致するように書き換え条件の正しい構文を知っている人はいますか?

于 2011-05-06T01:04:28.103 に答える
0

コントローラー名を確認してください。人々が(私が見つけた)最も一般的なことは、「メイン」コントローラー(たとえば、topics.php)をコピーして、ファイル名を次のように変更することです。whatever.php

それらは開発を開始し、コントローラー名は「トピック」のままです。コントローラが見つからないため(実際のファイルではない)、404がスローされます

元: class Blog extends CI_Controller {...

上記のコードがstuff.phpというファイルにある場合。あなたが呼んでいるならあなたは404を得るでしょう/stuff

于 2011-05-04T18:30:18.030 に答える
0

私は昨日同様の問題に遭遇しました。デフォルトのコントローラーは大文字のファイル名を持つことができますが、他のコントローラーは大文字の場合に404​​を生成します。これはMAMPセットアップでした。

コントローラがファイル名も反映していることを確認してください。

class User extends CI_Controller {
于 2011-05-04T18:32:33.460 に答える
0

あなたのhtaccessで...代わりに

RewriteRule ^(.*)$ /index.php/$1 [L]

試す

RewriteRule ^(.*)$ index.php/$1 [L]

base_url指示どおりに設定されたCI構成(末尾を含む/!)

$config['base_url'] = 'http://www.site.com/';

それはそれをする必要があります。

于 2011-05-05T17:25:44.013 に答える