Das ist auch weniger .htaccess als RegExp
Das Wildcard könntest Du schreiben als "^/r-.*", was aber genau das gleiche bedeutet wie meines, denn ein .* ist "irgendwas" oder "nichts". Die Conds prüfen ohnehin selbständig auf Bestandteile, somit ist das .* überflüssig.
Wenn schon ein "Wildcard", dann ein .+, denn da kann irgendwas kommen, es muss aber auch mindestens ein Zeichen kommen.
So, und wenn man den "Inhalt" des Wildcard möchte, dann muss man den in () packen, also etwa (.+). Ist hier aber nicht erforderlich, da Dich der Wert ja gar nicht interessiert, sondern nur, ob es mit "/r-" anfängt.
Das ^sagt nur aus, dass die URI mit dem nachfolgenden Zeichen beginnen muss, also dem /
wäre das ^ nicht da, dann könnte das /r- irgendwo stehen, also auch ein Unterordner eines Unterordners sein.
Im Gegensatz dazu wäre ein $ dafür da, dass der String mit dem Zeichen davor aufhören muss.
^/r-.*$ wäre also das Gleiche. Nur so gesehen unfug, da .* beliebig und etwas das beliebig ist endet auch beliebig, womit das $ überflüssig ist.
Und das "RewriteRule ^ - [F]" ist dann eben nur die eigentliche Rule, die Cond ist ja nur eine Vorabbedingung. Also die Rule sagt dann, wenn die Cond erfüllt ist. Alles was nun durchkommt mit Forbitten beantworten (Flag F). oder eben Flag G für Gone oder oder oder
Ist kein Hexenwerk
https://httpsd.apache.org/docs/2.0/mod/mod_rewrite.html
https://httpsd.apache.org/docs/2.0/mod/ ... writeflags
https://httpsd.apache.org/docs/2.0/misc ... guide.html
Oder allgemein auch hier:
https://www.modrewrite.de/
https://www.modrewrite.de/mod-rewrite/syntax/