Estou pedindo isso aqui como último recurso depois de tentar coisas diferentes / pedir ao Google / ler o link
Eu tenho o seguinte no meu apache2.conf
# Allow cross domain fonts
RewriteCond %{REQUEST_URI} (ttf|otf|eot|woff|svg) [OR]
RewriteCond %{QUERY_STRING} (ttf|otf|eot|woff|svg)
RewriteRule .* - [E=crossdomain:true]
# Cross domain videoplayer config
RewriteRule ^/video/player/config.json - [E=crossdomain:1]
# Cross domain for fragments
RewriteCond %{QUERY_STRING} fragment=true
RewriteRule .* - [E=crossdomain:1]
# Set header
Header set Access-Control-Allow-Origin "*" ENV=crossdomain
Tudo isso funciona bem. Agora, eu queria que URLs como as seguintes tivessem
Access-Control-Allow-Origin "*"
... cabeçalho também:
/video/player/sources.json?contentId=AVID20150102_0012&width=640&height=360
Como você pode ver, esse URL é quase idêntico ao da linha acima:
RewriteRule ^/video/player/config.json - [E=crossdomain:1]
Com (talvez) uma diferença importante - aquele (config.json) não usa strings de consulta e este (sources.json) faz.
Eu tentei adicionar regras diferentes para aplicar a variável de ambiente "crossdomain" ao URL sources.json, sem sucesso. Por exemplo:
RewriteCond %{REQUEST_URI} ^/video/player/sources.json [NC]
RewriteCond %{QUERY_STRING} ^contentId=(.*)&width=(.*)&height=(.*)
RewriteRule .* - [E=crossdomain:1]
O que eu acho que deveria ser o correto (mas como não funciona claramente, eu estou errado).
Eu PENSO o problema pode ter a ver com o% {REQUEST_URI} de alguma forma, desde quando eu uso isso:
RewriteCond %{QUERY_STRING} contentId
RewriteCond %{QUERY_STRING} width
RewriteCond %{QUERY_STRING} height
RewriteRule .* - [E=crossdomain:1]
... o cabeçalho desejado aparece nos cabeçalhos da resposta, embora eu não queira que o cabeçalho seja aplicado a tudo que usa esses parâmetros de consulta, seria uma coisa errada a se fazer.