2016-10-06 27 views
0

私はcodeigniter 3に問題があります。私はIDEとwampserverとしてnetbeansを使用しています。 私はブラウザを 'localhost/ci_test /'(ci_testはプロジェクト/ウェブサイトの名前です)にうまくいきました。デフォルトのwelcome.phpコントローラ を提供しましたが、私は第2コントローラをCIコントローラフォルダ次の内容の「test.phpを」、次のURLで:私はそのコントローラを参照しようとしたときcodeigniterカスタムコントローラを参照できません

<?php 
    class Test extends CI_Controller { 

     public function index() { 
     echo "This is default function."; 
     } 

     public function hello() { 
     echo "This is hello function."; 
     } 
    } 
?> 

はその後 http://localhost/ci_test/index.php/test それは私に私welcome.phpを務めた(私が欲しかったものではありません)、

私はこのURLを試しました: http://localhost/ci_test/test.php

と私は応答得た:

Not Found 

The requested URL /ci_test/test.php was not found on this server. 

Apache/2.4.9 (Win64) PHP/5.5.12 Server at localhost Port 80 

私は私がここで行方不明です何を理解していないが...

注:私はCodeIgniterのから提供された.htacessファイルを変更していません、それらをそのまま残しています(多分問題があります)。

私はCIに次のものを変更:

アプリケーション/設定/ config.phpの:

$config['base_url'] = 'http://localhost/ci_test/'; 
$config['index_page'] = '' 
$config['uri_protocol'] = 'PATH_INFO'; 

を、私は誰かがここで役立つことを願っ:)

EDIT: を私は読んだことがあります最初の4つの答えはまだ動作しません

EDIT2: 私はあきらめることを決めた後、私は私のapacheサーバーが 'mod_rewrite'をオンにしていないので、私はそれをオンにしました 同じプロジェクトをやり直してもうまくいきませんでした。その後、最初から新しいプロジェクトを作成し、CIで新しいコントローラを追加しました。 。これはここにある笑です... が私を助けようとしたすべての人々いただき、誠にありがとうございます:)

+0

考えてみましょう。あなたのシステムは常に 'localhost/ci_test /'から起動します。それが実行されなければ、あらゆる種類のものはセットアップされません。したがって、デバッグするときは、常に開始ページからデバッグする場所まで実行します。関心のあるスクリプトにブレークポイントを設定した場合、サイトの通常の流れでそこに着くと、ブレークポイントが起動します。 – RiggsFolly

答えて

1

あなたはテストコントローラが直接、あなたは、プロジェクトのルートに.htaccessファイルを追加する必要がアクセスする必要があります。.. あなたはあなたの問題が解決されますルートで、この.htaccessファイルを追加する場合CodeIgniterの

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

内のindex.phpを避けるための.htaccessファイル..

も(http://localhost/ci_test/test.php)あなたのURLに拡張子を追加する必要はありません、これは間違っている

http://localhost/ci_test/test 

これは

<?php 
class Welcome extends MY_Controller 
{ 
    public function index() 
    { 
     $this->load->view('welcome'); 
    } 
} 

あなたのコントローラ

1

歓迎コントローラをロードするのに十分な歓迎されています表示

<a href="<?php echo base_url('test'); ?>">Test Page</a> 

テストコントローラ

<?php 
class Test extends MY_Controller 
{ 
    public function index() 
    { 
     $this->load->view('test'); 
    } 
} 

試験ビュー

<h1>Test Page</h1> 

ビューはtest.phpをとwelcome.php名前とビューのフォルダに配置しなければなりません。

あなたがどのように乗っているかをお知らせください。


は、configフォルダにroutes.phpのファイルを見てください

変更$route['default_controller'] = 'welcome';

$route['default_controller'] = 'test';

にあなたならばそれは

を動作するかどうかを参照してください。それを言っているエラーを得るそれは箱から出して、この

http://localhost/index.php/ci_test/test

+0

が動作しますが、私は 'welcome.php'にアクセスできません 私はすべてのコントローラに直接アクセスできます:) –

+0

ページを変更するには、ハイパーリンクを使用する必要があります。デフォルトコントローラーはあなたが始めるところです。'Welcome Page'はあなたをウェルカムページに戻すでしょう。 – Blinkydamo

+0

ページを変更するリンクを使用しようとしましたか?もしそうなら、あなたはどんなエラーになりましたか? – Blinkydamo

0

にそれを変更してみてください。この

http://localhost/ci_test/test

のようなものであるならば、CodeIgniterのURLを使用してアドレスバーにページの外観を見つけるan't。 com/controller /メソッドを使用します。

Test.phpという名前のTestコントローラを作成しました。あなたが使用することになり、それにアクセスするには ...あなたが最後に.PHPを置かないでください

http://localhost/ci_test/test 

+0

おっと、あなたはすでにそれに答えていて、あなたはより良い仕事をしました! – TimBrownlaw

+0

ええ、私はそれを前提としましたが、それでも動作しません:) –

0

これは急いでいます... WAMPServerを使用している場合は、httpdファイルまたはvhostsファイルでMultiViewsが設定されていないことを確認してください。

関連する問題