如果包裹在 FilesMatch 中,Access-Control-Allow-Origin 不起作用
Access-Control-Allow-Origin doesn't work if wrapped inside FilesMatch
<FilesMatch "\.(json|txt)$" >
SetEnvIf Origin "http(s)?://(www\.)?(sub.domain.com|sub2.domain.com|www.domain2.com)$" AccessControlAllowOrigin=[=10=]
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),那么它就可以工作,我可以提出我的请求。如果我通过将 Deny from all 放入其中来测试我的 FilesMatch,那么它显然也能正常工作。但是把它们放在一起,我不能提出要求。它似乎很乱,但没有凭据并抛出 Access-Control-Allow-Origin 警告。
尽量把你的\.放在括号里
<FilesMatch "(?<!\.json|\.txt)$">
尝试将表达式作为字符串括起来,例如 "%{AccessControlAllowOrigin}e"
<FilesMatch "(?<!\.json|\.txt)$" >
SetEnvIf Origin "http(s)?://(www\.)?(sub.domain.com|sub2.domain.com|www.domain2.com)$" AccessControlAllowOrigin=[=11=]
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 "\.(json|txt)$" >
SetEnvIf Origin "http(s)?://(www\.)?(sub.domain.com|sub2.domain.com|www.domain2.com)$" AccessControlAllowOrigin=[=10=]
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),那么它就可以工作,我可以提出我的请求。如果我通过将 Deny from all 放入其中来测试我的 FilesMatch,那么它显然也能正常工作。但是把它们放在一起,我不能提出要求。它似乎很乱,但没有凭据并抛出 Access-Control-Allow-Origin 警告。
尽量把你的\.放在括号里
<FilesMatch "(?<!\.json|\.txt)$">
尝试将表达式作为字符串括起来,例如 "%{AccessControlAllowOrigin}e"
<FilesMatch "(?<!\.json|\.txt)$" >
SetEnvIf Origin "http(s)?://(www\.)?(sub.domain.com|sub2.domain.com|www.domain2.com)$" AccessControlAllowOrigin=[=11=]
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>