2016-07-27 5 views
2

私はCIのルートを使用して、私はCodeIgniterの3ルーティングの問題

dev.mydomain.com/models/test/ 

を参照した場合、すべてが正常に動作し、私は正しいを取得するのconfig/routes.phpの

if($subdomain == 'debug') 
{ 
    $route['debug/(:any)'] = "admin/debug/$1"; 
} 
elseif($subdomain == 'dev') 
{ 
    $route['models/(:any)'] = "v2/dev/models/$1"; 
} 

を次のエントリを持っています出力。

しかし、私は404エラーページを取得します

dev.mydomain.com/models/test/trip_id/9091 

を参照することでした。

これを動作させるには、次のルートエントリを使用するしかありません。

$route['models/(:any)/(:any)/(:any)']  = "v2/dev/models/$1/$2/$3"; 
本当にさらに私を混乱させる、それは私が私がルートエントリとして、ここで行方不明ですが似ています

debug.mydomain.com/debug/test/trip_id/9091 

を閲覧した場合に動作しますが、最初のサブドメイン上で動作するということです何

(デバッグ.mydomain.com)ではなく、後者(dev.mydomain.com)

にこれは私の.htaccessファイルの内容は

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

何か助けていただければ幸いです。

+0

あるべきルートパスをチェックしますが、 '$の設定[ 'BASE_URL']をチェックし、' '内に位置することができますアプリケーション/ config/config.php'? – rmondesilva

+0

同じCIアプリケーションを指す複数のサブドメインがあるため、URLとの相対的な関係になります。私は問題がこの設定ではないと思う。 – asyadiqin

答えて

0
$route['models/(:any)'] = "v2/dev/models/$1"; 

フォルダ からコントローラを呼び出している場合、それはyourfolder /コントローラ/ METHOD_NAME/$ 1

+0

コントローラクラスは../controllers/v2/dev/models.phpにあります – asyadiqin

+0

以下のように試してください $ route ['models /(:any)'] = "v2/dev/models/method_name/$ 1" ; index()をデフォルトで呼び出していない場合。 –

+0

あなたが私に言っていることは分かりませんが、上記のルートエントリーの通り、v2とdevはディレクトリ名で、modelsはクラスファイルです。メソッド/関数ごとに1つのエントリを作成するように頼んでいるのであれば、クラスファイルごとに最大30個のメソッド/関数を持つことができます。 – asyadiqin