server {
listen 80;
server_name pwta;
root html;
location /test/{
alias html/test/;
autoindex on;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Esta configuración funciona. Sin embargo, si se reemplaza location /test/
, p. location /testpath/
no funciona (no se especificó ningún archivo de entrada). Asumí como base en la explicación de la directiva de alias que la parte "ubicación" se descarta y, por lo tanto, /testpath/info.php
daría como resultado html/test/info.php
.nginx alias + directiva de ubicación
Gracias por cualquier sugerencia.
No entiendo completamente por qué funciona, pero de hecho resuelve el problema. ¿Alguien podría agregar más explicación sobre qué está pasando con ese bloque de ubicación central? – Brad
Al agregar 'alias' se sobrescribirá efectivamente el' $ document_root' a cualquiera que sea el alias. Tenga en cuenta que no afectará a '$ fastcgi_script_name' o' $ request_filename'. Usando el nuevo '$ document_root' junto con regex que coincida con el nombre del archivo, se resuelve en el archivo de script. – Gajus
Tenga en cuenta que el último bloque de ubicación no está haciendo nada cuando la solicitud está bajo '/ testpath /'. – Gajus