Как настроить apache для обработки нескольких доменов с помощью заголовка Access-Control-Allow-Origin?
Я хочу настроить apache для разрешения XMLHttpRequests из нескольких, но не всех доменов.
Это работает:
Header set Access-Control-Allow-Origin "*"
Но это небезопасно, я хочу разрешить домены, указанные мной, поэтому после небольшого количества поисковых запросов я добрался до этого:
Header set Access-Control-Allow-Origin "http://domain1.com http://domain2.com"
Но это только поднимает первый домен, второй не разрешается. Как правильно указать несколько доменов?
Ответы
Ответ 1
вы можете использовать SetEnvIf в вашем файле .htaccess или в файле vhost (внутри группы "Каталог" ):
<IfModule mod_headers.c>
SetEnvIfNoCase Origin "https?://(www\.)?(mydomain\.com|mydomain2\.com)(:\d+)?$" AccessControlAllowOrigin=$0
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</IfModule>
С помощью этого кода вы можете разрешить доступ из
- "mydomain.com" и "mydomain2.com"
- с или без "www." впереди
- с номером порта или без него
- http или https
Вы можете добавить несколько доменов, разделенных символом | или вы можете использовать regexp для настройки разных поддоменов или паттернов.
Ответ 2
Header always append Access-Control-Allow-Origin: "http://domain1.com"
Header always append Access-Control-Allow-Origin: "http://domain2.com"