2010-05-20 5 views
0

c'est mon contrôleur CIrègle de réécriture pour CodeIgniter

class Welcome extends Controller { 

function Welcome() 
{ 
    parent::Controller(); 
    } 

function index() 
{ 

} 
function bil($model='') 
{ } 

Je veux faire une ré-écriture afin que

http://example.com/index.php/welcome/bil/model 

devient

http://example.com/model 

dans mon htaccess je

RewriteBase/
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/welcome/$1 [L] 
#RewriteRule ^(.*)$ /index.php/welcome/bil/$1 [L] 

je pensais que ce devrait être aussi facile que de retirer la partie /index.php/welcome/ mais quand je décommenter la dernière ligne Obtenir 500 erreur interne du serveur

Répondre

0

Vous souhaitez utiliser mod_rewrite pour supprimer votre fichier index.php comme vous avez ci-dessus, mais utilisez CodeIgniter's routing features pour rediriger example.com/model vers example.com/welcome/bil/model.

Dans votre fichier de configuration routes.php, vous pouvez alors définir une nouvelle route comme ceci:

// a URL with anything after example.com 
// will get remapped to the "welcome" class and the "bil" function, 
// passing the match as a variable 
$route['(:any)'] = "welcome/bil/$1"; 

Alors, en tapant example.com/abc123 équivaudrait à example.com/welcome/bil/abc123.

Notez que seuls les caractères autorisés par $config['permitted_uri_chars'] (qui se trouve dans votre fichier config.php) sont autorisés dans une URL.

Espérons que ça aide!

Questions connexes