2009-08-16 19 views
3

Ich muss www.sample.com/users/user/username zu www.sample.com/username ändern, aber wenn ich zu gehe, zeigt es eine 404 Seite an. Ich habe versucht, zu routen, und uri->segment, aber ich kann das nicht zur Arbeit bringen. Bitte helfen Sie mir bei diesem Problem!Wie ändere ich die URL in CodeIgniter?

Antwort

3

Fügen Sie diese Zeile zu Ihrer config/routes.php Datei hinzu.

Beachten Sie, dass wenn Sie dies tun, müssen Sie Ausnahmen für andere Controller/Aktionen manuell hinzufügen, um zu arbeiten. Wenn Sie also einen Pfosten-Controller haben, ist Ihre Routen-Datei jetzt:

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

Und Sie werden diese Sie für jeden Controller/Aktion zu tun haben, haben das nicht Benutzer/Benutzer. Sie müssen auch verhindern, dass Benutzernamen dieselben Namen wie Ihre anderen Controller/Aktionen sind.

0

In Ihrem system/application/config/routes.php, fügen Sie diese:

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

Bitte beachten Sie, dass Sie die <otherController1>|<otherController1> mit tatsächlichen Namen Ihrer anderen tatsächlichen Controller, wie ersetzen müssen:

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

Und weil Sie wouldn‘ Wenn die anderen Methoden Ihres Benutzer-Controllers mit den Benutzernamen kollidieren sollen, müssen wir alle anderen Benutzer-Controller-Methoden routen. Zum Beispiel:

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