Usando o Apache Httpd mod_rewrite para reescrever a URL com base no cabeçalho da solicitação Accept?

1

Estou tentando reescrever uma URL com base no cabeçalho Aceitar da solicitação. Eu vi nos documentos que isso parece ser possível, mas não consegui encontrar nenhum detalhe ou exemplo em nenhum lugar sobre como fazê-lo.

Basicamente, gostaria que os pedidos para /abc/index.html fossem reescritos de acordo com o cabeçalho Accept:

Solicita que Accept: application/vnd.x.v1+json seja reescrito como /v1/abc/index.html Solicitações com Accept: application/vnd.x.v2+json a serem reescritas como /v2/abc/index.html

e assim por diante. E solicitações com o cabeçalho genérico application/json Accept ou nenhum cabeçalho Accept para serem reescritas como /v5/abc/index.html

Quaisquer sugestões sobre quem eu poderia conseguir isso são muito apreciadas!

Obrigado!

    
por Edy Bourne 30.12.2014 / 22:55

1 resposta

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

A linha RewriteCond corresponde ao cabeçalho Accept: e captura a string vX .

O RewriteRule faz a reescrita real e adiciona a string capturada RewriteCond ao local agora capturado; usando % interpolates RewriteCond capturas, $ interpola as capturas RewriteRule.

Ajuste os padrões, etc., para se adequarem.

    
por 31.12.2014 / 11:13