当用户登录时,我希望他们能够访问http://website.com/user
并被带到http://website.com/1/johndoe
,1
他们的用户 ID 和johndoe
用户名在哪里。
我正在尝试使用_remap()
来捕获所有尝试http://website.com/user/
,因此即使是不完整的 URI,例如http://website.com/user/1
或被http://website.com/user/1/joh
重定向到http://website.com/user/1/johndoe
.
这是我尝试过的:
class User extends CI_Controller {
function index($uID, $user) {
echo $uID;
echo $user;
}
function _remap() {
$uID = 3;
$user = 'johndoe';
//redirect('user/'.$uID.'/'.$user); // Updates URI, but redirect loop
//$this->index($uID, $user); Works, but doesn't update the URI
}
}
我当然可以先检测该方法,然后执行以下操作:
function _remap($method = '') {
if ($method != 'view') {
$uID = 3;
$user = 'johndoe';
redirect('user/view/'.$uID.'/'.$user);
}
}
function view($uID, $user) {
echo $uID;
echo $user;
}
但后来我认为 URI 看起来像http://website.com/user/view/1/johndoe
,我宁愿view
被排除在外。我该如何解决这个问题?