Verwenden Sie Apache Httpd mod_rewrite, um die URL basierend auf Accept Request Header neu zu schreiben.

1352
Edy Bourne

Ich versuche, eine URL basierend auf dem Accept-Header der Anforderung umzuschreiben. Ich habe in den Dokumenten gesehen, dass dies möglich erscheint, aber ich konnte nirgendwo Details oder Beispiele finden, wie man es anpackt.

Grundsätzlich möchte ich, dass Anfragen /abc/index.htmlentsprechend dem Accept-Header neu geschrieben werden:

Requests mit Accept: application/vnd.x.v1+jsonumgeschrieben werden als /v1/abc/index.html Requests mit Accept: application/vnd.x.v2+jsonumgeschrieben werden als/v2/abc/index.html

und so weiter. Und Anforderungen mit dem generischen application/jsonAccept-Header oder keinem Accept-Header, um überhaupt als neu geschrieben zu werden/v5/abc/index.html

Alle Hinweise auf wen ich das schaffen könnte, sind sehr dankbar!

Vielen Dank!

1

1 Antwort auf die Frage

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

Die RewriteCondZeile stimmt mit der Überschrift Accept: überein und erfasst die vXZeichenfolge.

Die RewriteRule führt die eigentliche Umschreibung durch und stellt die RewriteConderfasste Zeichenfolge dem jetzt erfassten Speicherort voran . mit %interpoliert RewriteConderfasst, $interpoliert RewriteRule erfasst.

Passen Sie Muster usw. an.

Das hat perfekt funktioniert! Ich werde dein Beispiel studieren, um dies zu lernen und andere Verwendungen ableiten. Vielen Dank!! Edy Bourne vor 9 Jahren 0