2010-06-26 8 views
0

Je me sers de Codeigniter et moi avons actuellement cette configuration de format URL:Comment mettre le nom d'utilisateur de l'utilisateur connecté dans l'URL?

http://example.com/view/ 

Je voudrais mettre en utilisateurs connectés nom d'utilisateur dans l'URL et de supprimer la partie de vue de l'URL. La vue est mon contrôleur. Je peux donc avoir quelque chose qui ressemble à ceci dans la barre d'adresse:

http://example.com/johnny 

Cependant, je tout d'abord essayé d'enlever la partie de vue à l'aide de mon fichier htaccess comme ceci:

RewriteEngine on 
RewriteBase/
RewriteCond $1 !^(index\.php|images|css|js|swfupload|uploads|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [QSA] 

#trying to remove view?? 
RewriteRule ^(.*)$ view.php/$1 [QSA] 

Mais cela a entraîné une 403 Erreur (interdite) car je viens de corrompre l'URL demandée!

Comment puis-je y parvenir au mieux? Peut-être en utilisant les routes de Codeigniter?

Merci à tous pour votre aide.

+0

et si l'utilisateur jane affiche 'http: // exemple.com/johnny'? allez-vous montrer une erreur, ou allez-vous montrer quelque chose comme la page de profil de johnny à jane (semblable à ce que facebook fait)? – Lukman

+0

@Lukman - oui exactement, c'est le genre de fonctionnalité que j'essaie de mettre en œuvre. Je vais vérifier si l'utilisateur est connecté, sinon les rediriger vers une page où les autres utilisateurs peuvent simplement voir ce profil. – Abs

Répondre

4

Vous devez essentiellement faire un itinéraire, puis des itinéraires pour tout le reste qui n'est pas pour les profils. C'est un peu ennuyeux mais c'est comme ça que vous devez le faire dans CI, j'ai peut-être tort. Par exemple:

$route['user/login'] = "user/login" 
$route[':any'] = "profile/$1"; // user profile 
+0

Serais-je en mesure d'ajouter les URL enregistrées dans le nom du fichier routes? c'est-à-dire $ username = $ this-> session-> userdata ('nom d'utilisateur'); $ route ['view /'.$ nom d'utilisateur] = "view/index/$ 1"; '?? – Abs

+0

@Abs Non, mais pourquoi auriez-vous besoin de? – mikelbring