3

簡単なネットワークサイトを作成していて、URLをFacebookと同じように機能させたいので、domain.com / usernameと入力すると、ユーザープロファイルが取得されます。私はすでにこの方法でこれを行うことができます

でログインしたユーザープロファイル

domain.com/

他のユーザーのプロファイル

domain.com/home/username

デフォルトのコントローラーはhomeと呼ばれ、現在_remap関数を使用して、渡されたものと渡されなかったものに基づいてさまざまなデータを表示するための追加のURLパラメーターをチェックしています。

私の質問は、次の方法でユーザープロファイルにアクセスできるように、これをどのようにマップするかです。

domain.com/username 

使用できるroutes.php設定はありますか?htaccess?

4

3 に答える 3

5

config/routes.phpに次のルールを追加する必要があります

// Profile Route
$route['(:any)'] = 'home/$1';

これにより、すべてのリクエストがホームコントローラーに再ルーティングされます

したがってdomain/michelle、として再ルーティングされますdomain/home/michelle が、この場合、すべての要求はホームコントローラーに再ルーティングされます。また、falsedomain/pages/aboutに再ルーティングされます。domain/home/pages/about

domain/michelle => domain/home/michelle // TRUE
domain/pages/about => domain/home/pages/about // FALSE

したがって、各リクエストに対して、プロファイルルートの前に同一のルールを追加する必要があります$route['pages/(:any)'] = 'pages/$1';

すべてをまとめる:

// Page Route 
$route['pages/(:any)']  = 'pages/$1'

// Last Profile Route
$route['(:any)'] = 'home/$1';
于 2012-08-13T06:13:06.487 に答える
1

これはCodeigniterで行うのが最も簡単なことではありません。そのためには、最初にroutes.phpで使用するすべてのルートを定義する必要があり、ファイルの最後に行を追加する必要があります。これにより、ユーザーが存在するかどうかを確認する他のすべてのリクエストがコントローラーに送信されます。

$route['stores/(:any)'] = 'stores/$1';
$route['pages/(:any)'] = 'pages/$1'; 

$route['(:any)'] = "home/$1"; //this route will return user's page
于 2012-08-13T06:15:38.253 に答える
0

これを行うには、application/configファイルで使用可能なroutes.phpファイルを変更します。ルート.phpの詳細については。これがCodeigniterのリンクURIルーティングです

于 2012-08-13T09:19:10.883 に答える