Ich habe eine Liste von mehreren hundert URL-Weiterleitungen innerhalb einer Neuschreibmaske. Die meisten URLs enthalten Abfragezeichenfolgen, die mit einem bestimmten Eintrag in der Neuschreibe-Map übereinstimmen. Ich habe this question darüber gefunden, wie die Abfragezeichenfolge in die Neuschreibemappe übergeben wird. Ich habe das funktioniert gut, aber das Problem ist jetzt, dass die vorhandene Abfrage Zeichenfolge an das Ende der neu geschriebenen URL angefügt wird. Zum Beispiel:Nach dem Durchlaufen der Rewrite-Map den Abfragestring vom Ende der URL entfernen
Expected Rewrite:
/subdir/dir.cfm?categoryID=123 -> https://example.com/subdir/endurl
Actual Rewrite:
https://example.com/subdir/endurl?categoryID=123
Expected Rewrite
/subdir/dir.cfm?videoID=3422424-131FDDFD-234 -> https://example.com/subdir/awesome/stuff
Actual Rewrite:
https://example.com/subdir/awesome/stuff?videoID=3422424-131FDDFD-234
Dies ist die Rewrite-Regeln habe ich:
RewriteEngine on
RewriteMap redirects dbm=sdbm:C:\Apache24\conf\redirects.sdbm
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*\.(cfm|cfml)) ${redirects:$1?%{QUERY_STRING}} [NC,R=301,L]
Wie kann ich die Abfrage-String entfernen, um die URL nach dem Umschreiben angehängt?
EDIT
konnte ich tatsächlich bekommen diese Arbeit mit diesem:
RewriteMap redirects dbm=sdbm:C:\Apache24\conf\redirects.sdbm
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*\.(cfm|cfml)) ${redirects:$1?%{QUERY_STRING}} [NC,C]
RewriteRule (.*) $1? [L,R=301]
aber ich bin nicht sicher, ob jemand einen besseren Weg weiß, zu tun, was ich tue? Ich denke, dass dies brechen könnte, wenn ich jemals zu einer URL umleiten muss, die eine Abfragezeichenfolge zu einer anderen URL enthält, die eine Abfragezeichenfolge enthält.