1

codeigniter でルートをカスタマイズしています。これは、routes.php のサンプルです。

$route['default_controller'] = 'maincontroller/main';                                                                                                                                                                                    
$route['404_override'] = '';     

$route['test'] = 'maincontroller/test';

ここにメインコントローラークラスがあります:

class Maincontroller extends CI_Controller  
{                 
    public function __construct( )
    {
        parent::__construct( ); 
        $this->load->library('session');  
        $this->init( ); 
    }


    public function main( )         
    {       
        echo "in main";
    } 

    public function test( )
    {
        echo "test";
    }
}

しかし、ブラウザで /test という URL にアクセスすると、サーバーの 404 ページが見つからないというエラーが表示されます。

私は何が間違っているのか分かりません.codeigniterユーザーガイドのルートガイドに従いました。

4

2 に答える 2

6

/test に移動する代わりに、 /index.php/test に移動してみてください

デフォルトでは、CodeIgniter は index.php を通じてすべてを実行します。

サイトのルート フォルダーに .htaccess ファイルを追加することで、この動作を変更できます。

これは、CodeIgniter ユーザー ガイドから直接引用したものです。

https://ellislab.com/codeigniter/user-guide/general/urls.html

htaccess ファイル

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

これを行う場合、config/config.php ファイルも変更する必要があります。

探す

$config['index_page'] = 'index.php';

に変更します

$config['index_page'] = '';

ページ (ビュー) にリンクを作成する場合は、組み込みの site_url() 関数を使用できます。これには、url ヘルパーをロードする必要がある場合があります。

例えば

<?php echo site_url('test'); ?>

これにより、$config['index_page'] 設定が考慮され、リンクの正しい URL が作成されます。

于 2012-04-15T21:14:59.490 に答える
0

localhost からサイトを実行しようとしている場合は、以下のコードを使用します。サイトのルート フォルダー (例: mysite) に .htaccess ファイルを追加します。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /root folder/index.php/$1 [L]

リモート ホスティング サーバーでホストされているサイトの場合は、このコードを使用します

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
于 2012-04-16T03:20:16.810 に答える