Estoy intentando configurar mi primer sitio web con nginx y parece que no puedo hacer que funcionen páginas php sin extensión. Me gustaría que mis páginas /aboutme.php
aparecieran como/aboutme
oMe gustaría simplemente cambiar mis URL a /aboutme
en lugar de /aboutme.php
y hacer que funcionen. Logré que el último escenario funcionara en el alojamiento CPanel editando .htaccess
así:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]
Sin embargo, si convierto .htaccess
código a nginx usando herramientas en línea, no funciona. También intenté editar mi nginx.conf
con try_files
y extensionless-php
sin éxito, obtengo 404. Mi simple nginx.conf
sin try_files
y extensionless-php
se ve así:
server {
listen localhost:8081;
server_name mywebsite.com; # I use my website here
root /usr/share/nginx/web/website1;
location / {
root /usr/share/nginx/web/website1;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /usr/share/nginx/web/website1;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Editar: mi pregunta se marcó como duplicada, así que intenté configurarla como se dijo sin éxito, si visito '/aboutme' aparece '404 no encontrado', si visito '/aboutme.php', es abierto como '/aboutme.php' con '.php':
server {
listen localhost:8081;
server_name mywebsite.com;
root /usr/share/nginx/web/website1;
location / {
try_files $uri $uri/ @extensionless-php;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
}
Respuesta1
Podrías intentar usar lo siguiente:
location / {
try_files $uri $uri.php $uri/ =404;
index index.html index.htm index.php;
}
También debe verificar los permisos de acceso/propietario del directorio y ver si el usuario nginx y php-fpm que se ejecuta como (definido en la configuración de nginx) puede acceder a esos directorios.