Я спрашиваю об этом в крайнем случае, попробовав разные вещи / спросив Google / прочитав http://httpd.apache.org/docs/2.2/
В моем 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
Все это прекрасно работает. Теперь я хотел, чтобы URL-адреса, подобные приведенным ниже, имели
Access-Control-Allow-Origin "*"
... заголовок:
/video/player/sources.json?contentId=AVID20150102_0012&width=640&height=360
Как видите, такой URL-адрес практически идентичен URL-адресу в строке выше:
RewriteRule ^/video/player/config.json - [E=crossdomain:1]
С (возможно) важным отличием - тот (config.json) не использует строки запроса, а этот (sources.json) использует.
Я пробовал добавлять другие правила, чтобы применить переменную среды "crossdomain" к URL-адресу sources.json, но безуспешно. Например:
RewriteCond %{REQUEST_URI} ^/video/player/sources.json [NC]
RewriteCond %{QUERY_STRING} ^contentId=(.*)&width=(.*)&height=(.*)
RewriteRule .* - [E=crossdomain:1]
Что, я думаю, действительно должно быть правильным (но поскольку это явно не работает, я ошибаюсь).
я СЧИТАТЬ проблема может быть связана с% {REQUEST_URI}, поскольку, когда я использую это:
RewriteCond %{QUERY_STRING} contentId
RewriteCond %{QUERY_STRING} width
RewriteCond %{QUERY_STRING} height
RewriteRule .* - [E=crossdomain:1]
... желаемый заголовок появляется в заголовках ответа, хотя я не хочу, чтобы заголовок применялся к все который использует эти параметры запроса, это было бы неправильно.
Вы можете сделать это при следующем условии:
RewriteCond %{REQUEST_URI} ^/video/player/sources.json$
RewriteCond %{QUERY_STRING} !=""
RewriteRule . - [E=crossdomain:1]
YMMV и может потребовать некоторых настроек для работы с другими правилами, но это способ.