3

私は今、このように私のcodeigniter設定でURIルーティングを設定します

$route['user/:any'] = "users";

このようなリクエストですべてが正常に機能します

http://localhost/user/1

しかし、私がリクエストしようとすると

http://localhost/user/

URIセグメントが空なので、エラーが発生します

404 Page Not Found
The page you requested was not found.

これを回避する方法は?使ってみました

$user = $this->uri->segment(2);
if (!isset($user)) redirect('/', 'refresh');

しかし、これは機能していません。

4

4 に答える 4

4

次のような別のルートを追加できます。

$route['user'] = "users"
于 2013-03-16T12:06:43.397 に答える
4

これの代わりに、コントローラーで関数を作成します。

public function index()
{
...

次のようなものを試してください:

public function index($slug = '')
{

if ($slug = '') {
   // redirect code here
}
else {
   // if there is something in $slug then load this code
}

そして多分あなたのルートは次のようなものでなければなりません:

$route['user'] = 'users';
$route['user/(:any)'] = 'users/index/$1';
于 2013-03-16T12:10:53.553 に答える
1

で試してみてください

$route['user:any'] = "users";
于 2013-03-16T12:06:13.847 に答える
1

構文を修正する必要があると思います。試してみてください。

$route['user/(:any)'] = "users";

ワイルドカードを括弧で囲む必要があります(:any)

参照:http ://ellislab.com/codeigniter/user-guide/general/routing.html 例を参照

于 2013-03-16T12:09:45.713 に答える