Entonces, para empezar, sí, he buscado una solución, pero no la encuentro. Sé que el problema está en mi código de reescritura, pero no sé lo suficiente para solucionarlo. Estoy usando nginx y php-fpm en Debian 9.5.
php se carga bien, pero .html ya no funciona.
server {
# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
root /var/www/example.com;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name example.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri.php;
rewrite ^(.*)$ $uri.php;
}
location /media {
autoindex on;
autoindex_exact_size off;
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# # With php-cgi (or other tcp sockets):
# #fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Gracias por su atención. Espero recibir noticias.
Editar: solo para aclarar, mi intención es que los archivos Python no muestren el .php en la URL, sino que los archivos html se carguen normalmente.
Respuesta1
Esta sección
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri.php;
rewrite ^(.*)$ $uri.php;
}
parece el culpable. La rewrite
directiva simplemente captura todos los URI y los reescribe en un .php
archivo.
Editar según comentarios
Basado en una pregunta similaraquí, creo que lo que necesitas es algo como:
location / {
try_files $uri $uri/ @rules;
}
location @rules {
rewrite ^(.*)$ $1.php last;
}