다음 블록
location / {
if ($http_origin ~* (https?://[^/]*\.example\.com(:[0-9]+)?)) {
add_header 'Access-Control-Allow-Origin' "$http_origin";
}
try_files $uri $uri/ /index.php?$args;
}
… 위 코드가 try_files
지시문에 도달하지 않으므로 404가 발생합니다 .
-
이것은 nginx 의 IfIsEvil 과 관련이 있습니까?
-
그렇다면
http_origin
if 문을 사용하지 않고 테스트하는 다른 방법이 있습니까?
나는 nginx> 1.4 (1.4.6, 1.7, 1.7.8)로 이것을 시도했다.
답변
나는 사용할 것이다 map
:
map $http_origin $cors_header {
default "";
"~^https?://[^/]+\.example\.com(:[0-9]+)?$" "$http_origin";
}
server {
...
location / {
add_header Access-Control-Allow-Origin $cors_header;
try_files $uri $uri/ /index.php;
}
...
}