Eu tenho o seguinte no meu .htaccess
arquivo:
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?:\/\/(www\.)?(inreado\.local|testenv\.inreado\.com|inreado\.com)$" AccessControlAllowOrigin=$0$1
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Header set Access-Control-Allow-Credentials true
</IfModule>
Estou tentando definir o Access-Control-Allow-Origin
cabeçalho se o host for um dos três domínios permitidos especificados no regexp. Mas nunca define esse cabeçalho. Aqui está o pedido e a resposta:
SOLICITAR
GET http://inreado.local:8080/ HTTP/1.1
Host: inreado.local:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en,en-US;q=0.8,ru;q=0.6
RESPOSTA
HTTP/1.1 404 Not Found
Date: Sun, 22 Mar 2015 09:44:17 GMT
Server: Apache/2.4.10 (Win64) PHP/5.6.3
X-Powered-By: PHP/5.6.3
Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
Access-Control-Allow-Credentials: true
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Eu testei regexp contra http://inreado.local
string aqui e deve corresponder, então não entendo onde está o problema.
Atualizar
SetEnvIf Origin "http(s)?://(www\.)?(inreado\.local:8080)$" AccessControlAllowOrigin=$1$2
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
ATUALIZAÇÃO: Obviamente a primeira coisa a fazer é enviar o
Origin
header da sua requisição...seu regex é
"http(s)?:\/\/(www\.)?(inreado\.local|testenv\.inreado\.com|inreado\.com)$"
Mas acredito que não corresponda porque você precisa adicionar a porta a este URL regex (já que
inreado.local
einreado.local:8080
são duas origens distintas). Assim, sua diretiva de cabeçalho é ignorada, pois a variável env não está definida.Então :
Origin
cabeçalho relevante em sua solicitação.A propósito, escapar de barras não é necessário em seu regex.