2010-07-01 5 views
0

J'ai ici un sous-domaine que je souhaite transmettre.sous-domaine htaccess

here the example of url : http://subdomain.domain.com/login 
and it should point to : http://subdomain.domain.com/index.php/login 

i écrire simple htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond $1 !^(index\.php|images|robots\.txt|css|javascript) 
RewriteRule ^(.*)$ index.php/$1 [L] 

mais je reçois toujours 500 erreur de serveur. n'importe quel corps a l'idée où je me trompe?

Merci pour toute aide

Répondre

1

Il est normal, vous allez à http://subdomain.domain.com/login, être redirigé vers http://subdomain.domain.com/index.php/login, puis à http://subdomain.domain.com/index.php/index.php/login et ainsi de suite parce que vous rewriterule toujours identique.

Vous pouvez écrire `RewriteRule^([^ /] *) $ index.php/$ 1 [L]

+0

salut rayon, je remercie pour l'aide, l'erreur 500 est de disparaître mais je reçois maintenant 404 page. je l'ai déjà essayé dans ma section locale, et fonctionne très bien. mais dans le serveur, il vient à la page 404. –

+0

Vous avez probablement quelque chose de mal ailleurs – radius

0

Assurez-vous que le module de réécriture Apache est actif et votre fichier .htaccess a la ligne suivante avant toute règle de réécriture:

RewriteEngine On 
+0

Je suis désolé, oublier de dire que je l'ai déjà moteur rewrite sur. je vais éditer –

0

En supposant que vous avez mod_rewrite activé, votre RewriteRule provoque une boucle de redirection infinie, qui dépasse le nombre maximal de redirections et provoque une erreur interne du serveur.

Vous devez conditionner votre règle afin qu'elle ne soit réécrite qu'une seule fois. Par exemple, cela devrait fonctionner:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php/$1 [L]