マップを使用してこのソリューションを思いつきました。私が抱えていた主な問題は、プレースホルダーの $1 ~ $9 の制限を超えていたことです。
RewriteMap filtermap txt:content/maps/filtermap.txt [NC]
RewriteCond ${filtermap:$6|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule ^models/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*) /models/?${filtermap:$1}&${filtermap:$2}&${filtermap:$3}&${filtermap:$4}&${filtermap:$5}&${filtermap:$6} [NC,L]
RewriteCond ${filtermap:$5|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule ^models/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*) /models/?${filtermap:$1}&${filtermap:$2}&${filtermap:$3}&${filtermap:$4}&${filtermap:$5} [NC,L]
RewriteCond ${filtermap:$4|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule ^models/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*) /models/?${filtermap:$1}&${filtermap:$2}&${filtermap:$3}&${filtermap:$4} [NC,L]
RewriteCond ${filtermap:$3|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule ^models/([^/]*/[^/]*)/([^/]*/[^/]*)/([^/]*/[^/]*) /models/?${filtermap:$1}&${filtermap:$2}&${filtermap:$3} [NC,L]
RewriteCond ${filtermap:$2|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule ^models/([^/]*/[^/]*)/([^/]*/[^/]*) /models/?${filtermap:$1}&${filtermap:$2} [NC,L]
RewriteCond ${filtermap:$1|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule ^models/([^/]*/[^/]*) /models/?${filtermap:$1} [NC,L]
とてもきれいではありませんが、機能します。フィルターマップはこんな感じ
p1/v1 p1=v1
p2/v2 p2=v2
...
p1/v1 の組み合わせが無制限の場合、これは理想的なソリューションではありませんが、私の場合は有限であるため、管理が非常に簡単です。