2011-12-09 21 views
0

私は少し質問があります。 Codeigniter 2.1.0を使用していて、routes.phpに次のコードがあります。コードギターのルートが動作しない場合があります

$route['default_controller'] = "photo"; 
$route['404_override'] = 'error'; 

$route['photo/:num'] = 'photo/index/$1'; 
$route['people/:num'] = 'people/index/$1'; 

奇妙なことは、私はhttp://www.myurl.com/photo/1に行くとき、時にはそれが動作し、それは私のエラーページに私をリダイレクトするothertimes、です。

誰でも私のルートに間違いがありますか?

事前に感謝!

ボブ

+0

にindex.phpを削除しないでください、あなたは '囲んでみました(:NUM)'括弧内に?あなたのルートに '$ 1'を使用しているのであれば、それが必要かもしれません。 – minboost

+0

これを使用していましたが、私が(:num)を付けたときにエラーが発生したため、かっこが削除されました。 – Bob

+0

URLから 'index.php'を削除するための.htaccessファイルがありますか?その場合は、カスタムルートは必要ありません。 photo/1は自動的にphoto/index/1に移動します。 – minboost

答えて

1

これは、あなたが書く必要が

$route['photo/(:num)'] = 'photo/index/$1'; 
$route['people/(:num)'] = 'people/index/$1'; 

正しくありません。このルート

$route['photo/(:num)'] = 'photo/$1'; 
$route['people/(:num)'] = 'people/$1'; 
そのようにして

の番号が許可されます。

インデックスは必要ありません。

0

ない。このような場合は、しかし、あなたは、ワイルドカードの前後に括弧を挿入することがありますかどうかわから:

$route['default_controller'] = "photo"; 
$route['404_override'] = 'error'; 

$route['photo/(:num)'] = 'photo/index/$1'; 
$route['people/(:num)'] = 'people/index/$1'; 
+0

これを使用していましたが、(:num)を削除したときにエラーが発生したためです。 – Bob

0

あなたはCodeIgniterの中でルートを使用する場合、.httacessファイルに

RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

を忘れて、config.phpファイル$config['index_page'] = '';