Regel für externe / nicht WP-Umschreibung ohne QSA

Ich versuche eine neue externe / nicht-WP Rewrite-Regel zu meinem .htaccess hinzuzufügen, aber WP fügt [QSA,L] am Ende der Regel hinzu. Wie verhindere ich den QSA-Teil?

Diese Zeile fügt die RewriteRule hinzu:

 $wp_rewrite->add_external_rule('go/([0-9]+)/?.*$', 'wp-content/plugins/xswpc/redirect.php?id=$1'); 

Und das ist die resultierende Zeile in meinem .htaccess

 RewriteRule ^go/([0-9]+)/?.*$ /wp-content/plugins/xswpc/redirect.php?id=$1 [QSA,L] 

Was ich möchte ist:

 RewriteRule ^go/([0-9]+)/?.*$ /wp-content/plugins/xswpc/redirect.php?id=$1 [L] 

Solutions Collecting From Web of "Regel für externe / nicht WP-Umschreibung ohne QSA"

Die Apache Rewrite Flags wie QSA sind fest codiert, siehe Quelle . Nicht sicher, warum es dich stören würde, aber wenn du es wirklich ändern willst, dann kannst und solltest du den Haken mod_rewrite_rules dafür benutzen. Unten ein Beispiel, wie es geht:

 add_filter( 'mod_rewrite_rules', 'wpse107528_change_mod_rewrite_rules' ); function wpse107528_change_mod_rewrite_rules( $rules ) { $pattern = '/^(?< =RewriteRule\s\^go.+\$1\s)(\[QSA,L\])$/im'; $replacement = '[L]'; $rules = preg_replace( $pattern, $replacement, $rules ); return $rules; } 

Vorsicht, ich habe den Regex nicht getestet.

Vielleicht kannst du es mit add_rewrite_rule versuchen

 function wpse107528_add_external_rewrite_rule() { add_rewrite_rule( 'go/([0-9]+)/?.*$', 'wp-content/plugins/xswpc/redirect.php?id=$1', 'top' ); //Uncomment when testing to avoid already refresh permalink page in wp-admin //flush_rewrite_rules(); } add_action( 'init', 'wpse107528_add_external_rewrite_rule' );