Sie sagten, Sie wollen nur Werte zulassen, die in der Karte gefunden wurden. Das ist nicht möglich, es sei denn, Sie geben eine zusätzliche Einschränkung in der Regex für die Erfassungsgruppe an. Es gibt keine Möglichkeit, dies mit der Map selbst zu tun. Soweit ich weiß, gibt es keine "map.keys"-Syntax, die Sie auf der linken Seite, dem Muster, anwenden können.
ABER,
Sie können einen Standardwert angeben, wenn der erfasste Wert nicht gefunden wird. Auf diese Weise:
## all on one line
RewriteRule ^/section/downloads/([a-zA-Z-]+)/(.*)$
/blah.php?subsection=${legacy:$1|defaultValue}&title=$2
Ersetzen Sie "defaultValue" durch einen Wert Ihrer Wahl. Zum Beispiel 0 (Null) oder "notfound", wenn das angegebene Argument nicht in der Karte gefunden wird.
Sie können dann entweder das Ergebnis mit einer anderen Regel umschreiben oder es einfach durchlaufen lassen und eine "404"-Meldung an der URL mit dem Standardwert bereitstellen.
Wenn Sie sich für eine andere Regel entscheiden, würde sie wie folgt aussehen:
## all on one line
RewriteRule ^/section/downloads/([a-zA-Z-]+)/(.*)$
/blah.php?subsection=${legacy:$1|notFoundMarker}&title=$2
## This rule fires if the lookupKey was not found in the map in the prior rule.
RewriteRule ^/blah.php?subsection=notFoundMarker /404.php [L]