Access-Control-Allow-Origin не работает, если он заключен в FilesMatch

    <FilesMatch "\.(json|txt)$" >
       SetEnvIf Origin "http(s)?://(www\.)?(sub.domain.com|sub2.domain.com|www.domain2.com)$" AccessControlAllowOrigin=$0$1
       Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
       Header set Access-Control-Allow-Credentials true
       Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
    </FilesMatch>

Если я использую средний блок сам по себе (без FilesMatch), то он работает, и я могу сделать свой запрос. Если я проверю свой FilesMatch, вставив в него Запретить от всех, то он, очевидно, тоже сработает. Но сложите их вместе, и я не могу сделать запрос. Кажется, он работает, но без учетных данных и выдает предупреждение Access-Control-Allow-Origin.


person somerandomusername    schedule 30.06.2015    source источник
comment
сошлитесь на этот пост с сообщением об успешном завершении с тем же кодом #22331450" title="обработка нескольких доменов с контролем доступа, разрешающим заголовок источника в apache"> stackoverflow.com/questions/20673882/   -  person Dickens A S    schedule 30.06.2015
comment
@ZigmaEmpire У меня нет проблем с настройкой Access-Control-Allow-Origin, я не могу сделать это вместе с FilesMatch, это просто не работает.   -  person somerandomusername    schedule 30.06.2015


Ответы (1)


Попробуйте поместить \. в скобки

<FilesMatch "(?<!\.json|\.txt)$">

Попробуйте заключить выражение в виде строки, например "%{AccessControlAllowOrigin}e".

<FilesMatch "(?<!\.json|\.txt)$" >
       SetEnvIf Origin "http(s)?://(www\.)?(sub.domain.com|sub2.domain.com|www.domain2.com)$" AccessControlAllowOrigin=$0$1
       Header add Access-Control-Allow-Origin "%{AccessControlAllowOrigin}e" env=AccessControlAllowOrigin
       Header set Access-Control-Allow-Credentials true
       Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
</FilesMatch>
person Dickens A S    schedule 30.06.2015
comment
К сожалению не помогло. Как только я добавляю ‹FilesMatch \.(json|txt)$ › он перестает работать. - person somerandomusername; 30.06.2015
comment
Отредактируйте мой ответ, можете ли вы проверить новое выражение (?‹!\.json|\.txt)$ - person Dickens A S; 30.06.2015
comment
попробуйте изменить FilesMatch на filesMatch - person Dickens A S; 30.06.2015