CodeIgniter'daki URL Nasıl Değiştirilir?

2 Cevap php

I www.sample.com/users/user/username www.sample.com/username değiştirmek zorunda, ama ben gittiğimde sitename/username, bir 404 sayfa görüntüler. Ben rota denedim, ve uri->segment, ama bu işe alınamıyor ettik. Bu konuda bana yardım edin!

2 Cevap

Lütfen config/routes.php dosyasına bu satırı ekleyin.

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

Bunu yaparsanız, elle çalışmak için diğer kontrolörler / eylemler için özel durumlar eklemek gerekir unutmayın. Eğer bir mesaj denetleyicisi varsa Yani, rotalar dosya şimdi:

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

Ve sen o kullanıcı / kullanıcı değil var, her denetleyici / eylem için bunu yapmak zorunda olacak. Aynı zamanda da diğer kontrolörler / eylemleri gibi aynı isimler olmaktan adlarını önlemek gerekir.

Senin içinde system/application/config/routes.php, bu ekleyin:

$route['^(?!<otherController1>|<otherController2>).*'] = "users/user/$1";

Eğer gibi diğer gerçek denetleyicileri gerçek isimleri ile <otherController1>|<otherController1> değiştirmeniz gerektiğini unutmayın:

$route['^(?!welcome|post).*'] = "users/user/$1";

Eğer kullanıcılar denetleyicisi diğer yöntemler adları ile çarpışmak istemem çünkü, biz rota tüm diğer kullanıcılar denetleyicisi yöntemleri gerekir. Örneğin:

$route['user/subscribe']            = "user/subscribe";
$route['user/username_exists']      = "user/username_exists";
$route['user/email_exists']         = "user/email_exists";
$route['user/signup']               = "user/signup";