2016-03-22 1 views
0

Les règles .htaccess suivantes provoquent une erreur 500 erreur de configuration:erreur de réécriture 500

RewriteEngine On  

RewriteCond %{HTTP_HOST} admin\.localhost$ [NC] 
RewriteRule ^(.*)$ /admin.php/$1 [L,NC,QSA] 
RewriteRule ^(.*)$ http://www.google.com [L,NC] 

La ligne de problème est celui du milieu. Si je commente cela fonctionne bien. L'objectif est de tout attraper sur http://admin.localhost et de passer tout à l'admin.php pour la manipulation. La ligne du bas est juste pour tester que la règle fonctionne et tout a été attrapé par la deuxième ligne.

Répondre

0

Vous devez arrêter la réécriture lorsque URI de la requête est déjà admin.php:

RewriteCond %{HTTP_HOST} ^admin\.localhost$ [NC] 
RewriteRule ^((?!admin\.php/).*)$ admin.php/$1 [L,NC] 
+0

Qu'il fait manquer la deuxième règle et aller à Google. Pour le tester j'accède à http: \\ admin.localhost donc ce n'est pas déjà admin.php. L'index par défaut pour le vhost est admin.php donc en théorie c'est mais si je change la ligne pour diriger vers index.php cela donne toujours une erreur 500. – Horaland

+0

En plus de 'RewriteEngine On', c'est tout. Il aura d'autres règles pour les sous-domaines supplémentaires, mais pas ATM – Horaland

+0

Je le test avec http: //admin.localhost et http: //admin.localhost/login/ – Horaland