Następujący blok
location / {
if ($http_origin ~* (https?://[^/]*\.example\.com(:[0-9]+)?)) {
add_header 'Access-Control-Allow-Origin' "$http_origin";
}
try_files $uri $uri/ /index.php?$args;
}
… Powoduje błąd 404, ponieważ powyższy kod nigdy nie osiąga try_files
dyrektywy, więc:
Czy ma to związek z IfIsEvil z Nginx?
Jeśli tak, to czy jest jakiś inny sposób na przetestowanie
http_origin
, nie używając instrukcji if?
Próbowałem tego z nginx> 1.4 (1.4.6, 1.7, 1.7.8).
map
lub użyćif
poza lokalizacją.if
poza blokiem lokalizacji?Odpowiedzi:
Użyłbym
map
:źródło
map
s z różnymi zmiennymi