Apache - změna Location http header (regex)

Dion

Apache - změna Location http header (regex)
« kdy: 16. 10. 2018, 22:55:24 »
Ahoj,

pokouším se upravit HTTP Header Location na požadovaný řetězec.

Hlavička Location vypadá nějak takto:
Location: https:/exmple.com/site/one-site.html?state=9af5-c542-49c&redirect_uri=https://example-two.com/site/path/callback&id=44-5f-25-13&response_type=code&approval_prompt=force

Požadovaný stav:
Location: https:/exmple.com/site/one-site.html?state=new,9af5-c542-49c&redirect_uri=https://example-two.com/site/path/callback&id=44-5f-25-13&response_type=code&approval_prompt=force

Toho jsem chtěl docílt níže zmíněným rewritem, ale neadaří se mi matchovat a Location se nijak neupraví. Uniká mi něco?

Kód: [Vybrat]
RewriteRule "^(.*)state(.*)" "$1state=new,$2 [R=303]"


phobi

Re:Apache - změna Location http header (regex)
« Odpověď #1 kdy: 17. 10. 2018, 13:12:32 »
je potřeba to řešit regexem? není str_replace rychlejší?
$sNew = str_replace("?state=", "state=new,", $sOld);

yti

Re:Apache - změna Location http header (regex)
« Odpověď #2 kdy: 17. 10. 2018, 13:31:41 »
mod_rewrite je na prepisanie pozadovanej URL (to rewrite requested URLs on the fly). Ty potrebujes prepisat vracany header, takze mod_rewrite ti nepomoze. mod_headers by mal byt na to vhodnejsi.