a priori hat geschrieben:Code: Alles auswählen
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.html
RewriteRule ^index\.html/?(.*) /$1? [L,R=301]
Verstehe Deine bisherigen Beispiele nicht ganz. Wofür ist der Backslash hinter [A-Z]+ gedacht? Wenn doch mit der Rule nur ^index\.html umgeleitet werden soll, warum das dann noch einmal als Kondition notieren?
Erste Regel für den Normalfall, also "
www.domain.de/index.html" nach "
www.domain.de/".
Erste Regel für Dein Beispiel
Code: Alles auswählen
RewriteRule ^index\.html/?(.*) /$1? [L,R=301]
würde dann "
www.domain.de/index.html/?ein-string-oder-so" nach "
www.domain.de/?ein-string-oder-so" meiner Meinung nach auch nicht richtig umleiten, weil ja "ein-string-oder-so" durch ? eigentlich wieder eliminiert werden sollte oder irgendwie verworren zumindest. ? leitet ja eigentlich, falls nicht als Frage für einen Ausdruck benutzt, einen QueryString ein und der lässt sich so eigentlich nicht übernehmen, zumal ja nach /$1? kein QueryString mehr folgen soll. Was soll nun html/? Bedeuten? Ob ein Slash hinter html vorhanden ist oder nicht? Habe es jetzt aber nicht getestet, erscheint mir nur etwas merkwürdig. Würde die Regel auch nicht verwenden, wenn Du da nichts Spezielles mit vorhast.
Für Deine zweite Frage, das könnte etwa so aussehen:
Code: Alles auswählen
RewriteRule ^(.*)(pagesetter|downloads|viewtopic)(.*)$ /? [L,R=301]
Dann müsstest Du mal schauen, ob das unter oder über den bestehenden Regel eingefügt werden muss, wahrscheinlich unter, denke ich zumindest augenblicklich.
Alles ungetestet!
Und da es sich um WP handelt, wenn das bisher alles über die index lief, dann solltest Du Dich da doch wohl erst einmal belesen, ob es da nicht interne Lösungen für Umstellungen und Einrichten gibt, bevor da Krautsalat draus wird.