8791 sujets

Développement web côté serveur, CMS

Bonsoir,
mon site est hébergé chez 1and1 et depuis quelques temps je me bats contre cette satanée erreur 500 que je connais malheureusement mal!
Le plus bizarre c'est que l'erreur n'est assez aléatoire. Par exemple, si je recharge l'URL qui a renvoyée une erreur plusieurs fois, j'arrive finalement a accéder à la page au bout d'un nombre variable d'essais...
Qu'est ce qui cause une erreur 500? en général ça vient du .htaccess mais j'ai écumé les forums pour résoudre le pb et malheureusement je ne trouve pas la solution alors je me demander si l'erreur peut venir du fichier .php vers lequel la redirection se fait...
dernière possibilité : ça vient de 1and1... (j'ai fait qqes recherches et apparemment plusieurs personnes ont eu le eme type de pb et leur solution a été.... d'aller voir ailleurs Smiley ohwell

Voici mon .htaccess :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /galerie/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
ErrorDocument 400 index.php
ErrorDocument 401 index.php
ErrorDocument 403 index.php
ErrorDocument 404 index.php
ErrorDocument 500 index.php
RemoveType x-mapp-php4 .html

Modifié par trikiwoo (14 Feb 2010 - 22:50)
Salut,

une erreur 500 survient quand le serveur se vautre. Un cas typique est celui d'un .htaccess mal écrit et à ma connaissance ça ne se "catche" pas avec un ErrorDocument 500.

Je dirais que ta règle est mal écrite puisqu'elle "se mord la queue" il faudrait signifier de sortir du rewriting avec le flag [L] :
RewriteRule (.*) index.php [L]
Voir à ce sujet cet article.

D'ailleurs je ne comprends pas bien pourquoi tu ne fais pas du vrai rewriting. Quelque chose du genre
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-zA-Z_]+)/([a-zA-Z_]+)/album_([0-9]+)\.html$	index.php?pays=$1&region=$2&id=$3	[L]
RewriteRule ^([a-zA-Z_]+)/([a-zA-Z_]+)							index.php?pays=$1&region=$2	[L]
RewriteRule ^([a-zA-Z_]+)$										index.php?pays=$1 [L]

Modifié par Heyoan (14 Feb 2010 - 23:22)
Merci pour ta réponse rapide Heyoan!
ok j'ai rajouté le [L] mais toujours le même pb...
et oui je connais bien l'article que tu conseilles Smiley smile très bien expliqué je dois dire.

J'ai bien essayé de faire du vrai rewriting mais idem erreur 500, voilà à quoi ressemblait un de mes nombreux .htaccess test :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /galerie/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(fr|en)/([a-zA-Z0-9-_/]+)/album_([0-9]+)\.html$  index.php?lg=$1&dossier=$2&test=1 [L]
RewriteRule ^(fr|en)/([a-zA-Z0-9-_/]+)$  index.php?lg=$1&dossier=$2&test=2 [L]
RewriteRule (.*)  index.php?lg=fr&test=0 [L]


J'étais revenu à une simple gestion de l'erreur 404 pour simuler de l'URL rewriting afin de mieux cerner le pb d'erreur 500. Mais rien à faire, le pb persiste...
oui j'avais essayé aussi.
Je viens de passer un moment a tester mon site (en restant a avec la version "gestion de l'erreur 404") et pdt 3min nickel tout marchait puis pendant 30s quasiment que des erreurs 500 etc.
je sais pas si ça vient de mon navigateur (ça devrait pas puisque c coté serveur), voici par exemple un lien à tester : www.sylvaincedat.fr/galerie/australie
Faites moi savoir si vous obtenez des erreurs 500 et si oui a quelle fréquence...
Je crois que je vais passer un coup de fil à 1and1 moi... erreur 500 et 1and1
Modifié par trikiwoo (14 Feb 2010 - 23:43)
Bon j'ai fait un test simple :
j'ai créé un dossier test avec à l'intérieur un .htaccess :


Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /test/
RewriteRule ^([a-zA-Z_]+)/([a-zA-Z_]+)/album_([0-9]+)\.html$    index.php?pays=$1&region=$2&page=$3&test=1    [L] 
RewriteRule ^([a-zA-Z_]+)/([a-zA-Z_]+)                            index.php?pays=$1&region=$2&test=2    [L] 
RewriteRule ^([a-zA-Z_]+)$                                        index.php?pays=$1 [L]


et un fichier index.php :

<?php
if (isset($_GET['test']))
	{
		$page=$_GET['page'];
		$pays=$_GET['pays'];
		$region=$_GET['region'];

		echo'<br>';
		echo 'pays='.$pays;
		echo'<br>';
		echo 'region='.$region;
		echo'<br>';
		echo 'page='.$page;
		echo'<br>';
	}
else
	{
		echo 'URL invalide';
	}
?>


Résultat : des erreurs 500 aléatoires! vous pouvez tester :
www.sylvaincedat.fr/test/mauvaiseURL
www.sylvaincedat.fr/test/pays/region
www.sylvaincedat.fr/test/pays/region/album_1.html

SVP quelqu'un peu me confirmer qu'on obtient bien des erreurs 500 intempestives? Merci
Modifié par trikiwoo (15 Feb 2010 - 20:09)
trikiwoo a écrit :
SVP quelqu'un peu me confirmer qu'on obtient bien des erreurs 500 intempestives?
Ben tu n'as pas besoin de confirmation : puisque ça se passe côté serveur si c'est vrai pour toi c'est vrai pour tout le monde. Smiley murf

Il faudrait effectivement contacter l'hébergeur.