Nombre de archivo sin extensión en nginx SCRIPT_FILENAME

Nombre de archivo sin extensión en nginx SCRIPT_FILENAME

Sirvo phparchivos tanto ejecutables como nginx. Por lo tanto, separo la URL de solicitud por la extensión como

location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

location ~ \.c$ {
fastcgi_pass  unix:/var/run/fcgiwrap.socket;
fastcgi_index  index;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

Con PHP, el script a ejecutar tiene .phpextensión; pero para archivos ejecutables, .hello.ces el script original y su ejecutable compilado es helloel archivo.

Necesito ejecutar el helloarchivo cuando visito https://example.com/hello.c.

¿Existe alguna directiva en nginx en lugar de $fastcgi_script_nameobtener el nombre del script sin extensión?

Respuesta1

Captúrelo en la ubicación.

Por ejemplo:

location ~ ^(.*)\.c$ {
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
    fastcgi_index  index;
    include /etc/nginx/fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$1;
}

información relacionada