2011-03-16 3 views
0

J'essaie de comprendre comment rediriger toutes les requêtes:Rediriger tout le trafic à la racine d'inclure le fichier dans le chemin mod_rewrite

http://www.i2systems.com 

Pour inclure « index.php » dans l'URL comme ceci:

http://www.i2systems.com/index.php 

cette demande:

http://www.i2systems.com/services/supply-chain-design/ 

devient ceci:

http://www.i2systems.com/index.php/services/supply-chain-design/ 

Comment puis-je obtenir - je l'ai essayé, mais sa ne fonctionne pas:

RewriteCond %{HTTP_HOST} ^i2systems.com [NC]<br> 
RewriteRule ^(.*)$ http://www.i2systems.com/$1 [L,R=301]<br> 
RewriteRule ^$ index.php [L] 

Répondre

2

Je suggère quelque chose comme ceci:

RewriteEngine On  
RewriteCond %{REQUEST_URI} !^/index.php/.* 
RewriteRule (.+) /index.php/$1 [R=301,L] 

Comme il est important de Ne pas rediriger lorsque index.php est déjà présent au début de l'URI de la requête.

Mise à jour: Pour éviter css, redirection js essayez ceci (en supposant que vous ne souhaitez que /services/chemin pour rediriger selon votre question initiale):

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/services/.* 
RewriteRule (.*) /index.php/$1 [R=301,L] 
+0

non testé, mais cela semble juste pour moi . – techtheatre

+0

Lorsque j'ajoute cela, il redirige chaque instance pour ajouter index.php - donc tous les fichiers stylesheets/js incorporés obtiennent l'index.php ajouté afin que la page ne soit pas rendue correctement. – jrutter

+0

@jrutter: S'il vous plaît voir ma règle mise à jour ci-dessus. – anubhava

0
RewriteEngine On 

RewriteCond %{query_string} ^(.*) 
RewriteRule (.*) index.php/$1?%1 
Questions connexes