2009-04-27 10 views
1

Je ne sais pas pourquoi, mais chaque fois que je fais quelque chose avec un motif complexe pour un RewriteRule dans un fichier .htaccess, je reçois une erreur interne de 500. Mon fichier .htaccess actuel dans son intégralité est:500 Erreur interne lors de l'utilisation de mod_rewrite dans .htaccess

RewriteEngine on 
RewriteRule ^ups/sections/([A-Za-z]{3})/([A-Za-z0-9_-+\.]+)/?$ /dl.php?loct=sec&sec=$1&file=$2 [R=302] 

J'ai essayé avec seulement « RewriteEngine sur » et obtenir aucune erreur. J'ai essayé quelque chose de vraiment simple comme: "RewriteRule^ups /? $/Xyz [R]" qui fonctionne parfaitement. J'ai essayé avec et sans l'option Symlinks. J'ai essayé avec et sans barre oblique au début du motif et avec et sans barre oblique au début du remplacement.

Il semble que chaque fois que j'utilise une regex "complexe", ça ne marche pas.

Remarque: Je ne possède pas ce serveur et ne peut pas modifier les fichiers de configuration apache.

Toute aide serait appréciée.

Répondre

1

Essayez de changer à

RewriteRule ^ups/sections/([A-Za-z]{3})/([A-Za-z0-9_+.-]+)/?$ /dl.php?loct=sec&sec=$1&file=$2 [R=302] 
+0

Eh bien, je me sens stupide ... –

1

Pour expliquer votre erreur: A l'intérieur d'une classe de caractères le tiret (-) doeas décrivent AllWays une fourchette comprise entre deux caractères. sauf qu'il apparaît au début ou à la fin de la classe de caractères. Mais votre plage de _ à + n'est pas valide car _ (0x5F) a une position plus élevée que + (0x2B).

Questions connexes