Erreur 500 causé par htaccess

Fermé
Tiwin - Modifié par Tiwin le 1/10/2011 à 19:39
theshadoo Messages postés 786 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 3 mai 2016 - 2 oct. 2011 à 12:47
Bonsoir, en testant mes scripts php sur mon site hébergé chez OVH, celui-ci me renvoi depuis quelques heures un Internal Server Error. Or cette erreur 500 s'applique sur toutes les pages et ne vient donc pas de mon code, j'ai donc regardé mon htaccess et ai testé sans celui-ci : tout remarche (sauf ce pour quoi il a été fait évidemment).

Le problème, c'est que je ne l'ai pas modifié et je me demande donc pourquoi tout d'un coup il ne fonctionnerai plus ? J'ai déjà eu des problèmes liés à mon htaccess mais là je sèche.

SetEnv PHP_VER 5 
AddDefaultCharset UTF-8 
AddCharset UTF-8 .html 
Options +FollowSymlinks 
RewriteEngine on  
RewriteCond %{HTTP_HOST} ^mondomaine.net$ 
RewriteRule ^(.*) http://www.mondomaine.net/$1  [QSA,L,R=301] 
RewriteRule ^categorie/([a-z]+)$ /index.php?cat=$1 [L] 
RewriteRule ^news/([0-9]+)/commentaires/([0-9]+)$ /index.php?news=$1&comment=$2 [L] 
RewriteRule ^news/([0-9]+)$ /index.php?news=$1 
RewriteRule ^chat/([0-9]+)$ /chatt.php?page=$1 [L] 
RewriteRule ^chat/$ /chatt.php [L] 
RewriteRule ^liste/membre$ /list.php?liste=membre [L] 
RewriteRule ^liste/news$ /list.php?liste=news [L] 
RewriteRule ^profil/([0-9]+)$ /profile.php?id=$1 
RewriteRule ^profil/([a-z]+)/([0-9]+)$ /profile.php?page=$1&id=$2 [L] 
ErrorDocument 404 /404.php


Merci d'avoir lu mon sujet et de votre éventuelle future réponse ! Ah j'en profites pour demander, si vous le savez et si vous le voulez bien, pourquoi est-ce que j'ai été obligé de renommer tous mes fichiers liés à des redirections qui portaient le même nom alors que généralement avoir un rewriterule portant le même nom que la page n'est pas sensé poser de problème ?


4 réponses

Commenter toutes les règles et les décommenter 1 à 1.
0
En fait justement, j'ai l'impression que le .htaccess à sa lecture ne fourni pas les sauts de lignes.
Je m'explique : toutes les expressions seules marchent mais dés qu'il y en a deux il y a une erreur 500 ! De même si j'inclue un commentaire au tout début, toutes les lignes suivantes sont ignorés. Maintenant si j'inclue des commentaire a la ligne suivante, plus rien ne marche, comme si le htaccess avait collé les deux lignes (un # en plein milieu d'une expression ferai tout planter).

Cette solution expliquerai tous les problèmes seulement c'est un peu surréaliste comme erreur non ? J'ai essayé avec plusieurs éditeurs (on sait jamais) mais le problème ne se résout pas, netbeans, notepad++ ou un simple bloc note ils fournissent tous la même erreur... Je comprend pas @____@
0
Ok le problème s'est résolu de lui même, je comprend rien mais apparemment ça marche. Le htaccess est strictement identique à hier mais ça remarche...
Désolé à ceux qui ont le même problème que moi j'ai absolument aucune solution a apporter =(.
0
theshadoo Messages postés 786 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 3 mai 2016 123
2 oct. 2011 à 12:47
Oui effectivement c'est étonnant que lorsque tu mets en commentaire cela clash.

Mais justement l'erreur est peut être dû à l'ordre de tes rewrite rules.

Le serveur apache test dans l'ordre les règles et prend en compte la première venu.
Donc je pense que c'est pour ca que ta première règle passe mais dès que tu mets en commentaire ca plante (d'ailleurs j'en suis certain).

Donc les règles générale de rewrite sont à mettre en dernière et non en première.
Ce qui est étonnant c'est que ca fonctionnait avant.

Comme l'a dit A.Nonymous il faut procéder par étape en commentant petit à petit tes lignes afin de cibler une règle si elle est fausse mais avant il faut que tu remettes dans le bon ordre.

en séparant par famille de redirection.

Celle qui sont générales et de la même famille sont à mettre en dernier

de la plus grande à la plus petite tout ce qui concerne l'index par exemple si elle contient plus de sous branches sont à mettre en premier puis après la plus petite.

Apache va prendre la première condition qu'il voit si ta première réécriture porte sur l'index et un page générale les autres vont foirer.

Je pense qu'en partie c'est ca qui fait merder.

Pour débugger mon htaccess sous 1&1 j'ai procédé en éliminant mes règles une par une mais elles étaient dans l'ordre de base. OVH reste correcte en principe sur les regex de réécriture après ca devrait le faire je pense.
0