Hänge noch ein Fragezeichen an die Ziel-URL an, dann sollte der Parameterteil verschwinden.
Was bedeutet "&;"? Ich habe es in der Syntax von mod_rewrite nicht gefunden.
Da habe ich auch noch einen Fehler gemacht, &; muss in eckige Klammern gesetzt werden - war wohl nicht mein Tag.
(^|[&;])name= bedeutet "
Textanfang (^),
oder (|) ein Und oder Semikolon ([&;]), dann folgt der Text
name=. Die
runde Klammer klammert den Oder-Ausdruck, begrenzt ihn also auf die Wahl zwischen ^ und [&;]. Die
eckige Klammer steht für exakt ein Zeichen aus der in ihr enthaltenen Auswahl (hier: Und und Semikolon). Das
Dach steht für überhaupt kein Zeichen, an dieser Stelle muss der Text beginnen.
Dieses Muster passt auf alle Texte, die entweder mit name= beginnen (^name=) oder in denen name= auf ein Und oder Semikolon folgt (&name= oder ;name=).
Wie Du sicherlich weißt, werden einzelne Parameter in URLs durch ein Und oder Semikolon getrennt. Mit diesem Muster kannst Du daher auf jedes Vorkommen des Parameters name prüfen, und zwar egal wo in der Parameterkette er steht und - das ist der Witz an dem führenden ^|[&;] - ohne dabei über Parameter zu stolpern, die lediglich auf name enden, zB vorname, nachname oder dergleichen.
Das Muster würde auf
name=bla,
test=1&name=bla oder
;name=bla passen, nicht jedoch auf
vorname=bla oder
test=2;nachname=bla.
Das Ganze nennt sich regulärer Ausdruck. Die Dinger werden Dir an Stellen, wo Zeichenketten auf Übereinstimmung mit einem bestimmten Muster überprüft werden sollen, sehr häufig begegnen, sogar in der Suchfunktion einiger Texteditoren bzw. Textverarbeitungen, daher sind sie in der Apache-Anleitung auch nur ansatzweise erklärt.
Das Grundprinzip wird in einem
Wikipedia-Artikel ganz vernünftig erklärt. Es gibt eine Funktionsbibliothek namens
PCRE, die für die Auswertung dieser Muster fast immer zum Einsatz kommt und auch vom Apache verwendet wird. PCRE-Muster bieten noch eine Reihe weiterer Möglichkeiten.
Im Ganzen sollte Dein Muster also so aussehen:
RewriteCond %{QUERY_STRING} (^|[&;])name=Downloads
RewriteRule ^modules\.php$ httр://example.com/? [R=301,L]
(Ich hab's diesmal ausprobiert, bei mir funktioniert es.)