1

ユーザーが存在しないコントローラーにアクセスしようとした場合、URL を書き換えます。

例:- ユーザーが にアクセスしようとした場合http://example.com/project/anyvalue。私のプログラムには、「anyvalue」という名前のコントローラーがありません。この状況では、リダイレクトしたい

http://example.com/project/profile/anyvalue

codeigniter でルーティングを使用すると、これはどのように可能になりますか?

4

3 に答える 3

1
  1. 「/project/...」の下にあるすべての既存のコントローラーにルートを追加します。
  2. 「/project」の下のパスに一致するルートを追加します

例:

/* Currently available controllers under "/project/" */
$route['project/profile'] = "project/profile";
$route['project/add'] = "project/add";
$route['project/edit'] = "project/edit";

/* Catch all others under "/project/" */
$route['project/(:any)'] = "project/profile/$1";

/* if controller class name is Profile and function name is index */
$route['project/(:any)'] = 'project/profile/index/$1';
于 2013-01-23T04:04:36.627 に答える
1

コントローラーが見つからない場合は、デフォルト ルートを使用してリクエストを特定のページにリダイレクトします

ルートの場所は次の場所にあります

/application/admin/config/routes.php

$route['default_controller'] = "welcome";

ページが見つからない場合は以下も使用してください

$route['404_override'] = 'default_page'; 
于 2013-01-22T11:03:56.227 に答える
0

必要なのはバニティURLです。これを実行するためのガイドは、コードイグナイターで次の場所にあります。

http://philpalmieri.com/2010/04/personalized-user-vanity-urls-in-codeigniter/

基本的に、これをルートファイルに追加します。

$handle = opendir(APPPATH."/modules");
while (false !== ($file = readdir($handle))) {
  if(is_dir(APPPATH."/modules/".$file)){
    $route[$file] = $file;
    $route[$file."/(.*)"] = $file."/$1";
  }
}

/*Your custom routes here*/

/*Wrap up, anything that isnt accounted for pushes to the alias check*/
$route['([a-z\-_\/]+)'] = "aliases/check/$1";
于 2013-01-22T11:13:12.053 に答える