Die HTTP-Get-Parameter sind nicht Teil der URL. Wenn Sie genau übereinstimmen müssen diesen Antrag versuchen Sie (mit genau diejenigen Parameter bekommen), dann müssen Sie eine Rewriteond s durch das Umschreiben Modul angeboten verwenden:
RewriteEngine on
RewriteCond %{QUERY_STRING} returnurl=/9ct-gold-belcher-chain-tg40dc
RewriteRule ^/?changecurrency/3 http://www.example.com/9ct-gold-belcher-chain-tg40dc [END,R=301,QSD]
Die obige Regel in der http-Server-Host-Konfiguration arbeiten und auch in dynamischen Konfigurationsdateien (.htaccess
).
Offensichtlich muss das Rewriting-Modul in den HTTP-Server geladen werden.
Wenn Sie eine wirklich alte Version des Apache http-Servers verwenden, müssen Sie möglicherweise das END
Flag durch das Flag L
ersetzen.
Und ein allgemeiner Hinweis: Sie sollten solche Regeln immer lieber in der Host-Konfiguration des http-Servers platzieren, anstatt dynamische Konfigurationsdateien (".htaccess") zu verwenden. Diese Dateien sind notorisch fehleranfällig, schwer zu debuggen und verlangsamen den Server wirklich. Sie werden nur als letzte Option für Situationen angeboten, in denen Sie keine Kontrolle über die Host-Konfiguration haben (lesen Sie: wirklich günstige Hosting-Service-Provider) oder wenn Sie eine Anwendung haben, die eigene Schreibregeln schreibt (was ein offensichtlicher Sicherheitsalarm ist)).
Die HTTP-Get-Parameter sind _nicht_ Teil der URL. Wenn Sie genau diese Anfrage abgleichen müssen (mit genau den get Parametern), dann müssen Sie ein 'Rewriteond' verwenden, das vom Überschreibungsmodul angeboten wird. – arkascha
Vielen Dank @arkascha – Owen