Utilizzando Apache Httpd mod_rewrite per riscrivere l'URL in base all'intestazione della richiesta Accept?


1

Sto tentando di riscrivere un URL basato sull'intestazione Accept della richiesta. Ho visto nei documenti che questo sembra possibile, ma non sono riuscito a trovare alcun dettaglio o esempio su come farlo.

Fondamentalmente vorrei richieste a /abc/index.html essere riscritto in base all'intestazione Accept:

Richieste con Accept: application/vnd.x.v1+json essere riscritto come /v1/abc/index.html Richieste con Accept: application/vnd.x.v2+json essere riscritto come /v2/abc/index.html

e così via. E richieste con il generico application/json Accetta intestazione o non accetta affatto intestazione per essere riscritto come /v5/abc/index.html

Ogni suggerimento su chi potrei realizzare questo è molto apprezzato!

Grazie!

Risposte:


1
RewriteCond %{HTTP_ACCEPT} ^application/vnd\.x\.(v[1-9])\+json
RewriteRule ^(/abc/index\.html)$ /%1/$1 [L]

Il RewriteCond linea corrisponde all'accettazione: intestazione e cattura il vX stringa.

Il RewriteRule esegue la riscrittura effettiva e antepone il RewriteCond stringa catturata nella posizione ora catturata; utilizzando % interpola RewriteCond cattura, $ interpola le acquisizioni di RewriteRule.

Regola i modelli ecc. Per adattarli.


Questo ha funzionato perfettamente! Studierò il tuo esempio per imparare questo e ricavarne altri usi. Grazie!!
Edy Bourne
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.