Eu preferiria essa configuração:
server {
listen 80;
server_name domainA.com www.domainA.com;
root /var/www/public_html;
location = /view.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index view.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
return 301 https://learn.domainB.com;
}
}
Não há necessidade da instrução if
, pois o nginx processa pedidos de localização do início ao fim e usa o primeiro bloco de localização correspondente.
Isso não ajuda com o problema de view.php
ser baixado, há algo no arquivo que o impede de ser executado como Anubioz mencionou.
Eu também removi o escape do ponto na parte location = /view.php
, já que essa não é uma correspondência de expressão regular e, portanto, a fuga não é necessária.