2009-04-27 12 views
1

Ich habe keine Ahnung warum, aber jedes Mal, wenn ich etwas mit einem komplexen Muster für eine RewriteRule in einer .htaccess-Datei mache, bekomme ich einen 500 internen Fehler. Meine aktuelle .htaccess-Datei in seiner Gesamtheit:500 Interner Fehler bei der Verwendung von mod_rewrite in .htaccess

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

ich nur versucht habe „RewriteEngine on“ und keine Fehler. Ich habe etwas sehr einfaches versucht, wie: "RewriteRule^ups /? $/Xyz [R]" was perfekt funktioniert. Ich habe es mit und ohne die Option Symlinks versucht. habe ich mit und ohne Schrägstrich am Anfang des Musters und mit und ohne Schrägstrich am Anfang des Ersatzes versucht.

Es scheint wie immer, wenn ich "komplexe" suchen Regex, es funktioniert einfach nicht.

Hinweis: Ich besitze diesen Server nicht und kann die Apache-Konfigurationsdateien nicht ändern.

Jede Hilfe wäre willkommen.

Antwort

1

Versuchen Sie es zu

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

Nun, ich fühle mich dumm ... –

1

zu ändern, um Ihren Fehler zu erklären: Innerhalb einer Zeichenklasse der Bindestrich (-) doeas durchweg einen Bereich zwischen zwei Zeichen beschreiben. außer es erscheint am Anfang oder am Ende der Zeichenklasse. Aber Ihr Bereich von _ bis + ist ungültig, da die _ (0x5F) eine höhere Position als + (0x2B) hat.

Verwandte Themen