Nginx: configuración configurada para que funcionen las páginas php sin extensión

Nginx: configuración configurada para que funcionen las páginas php sin extensión

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.phpaparecieran como/aboutme oMe gustaría simplemente cambiar mis URL a /aboutmeen lugar de /aboutme.phpy hacer que funcionen. Logré que el último escenario funcionara en el alojamiento CPanel editando .htaccessasí:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]

Sin embargo, si convierto .htaccesscódigo a nginx usando herramientas en línea, no funciona. También intenté editar mi nginx.confcon try_filesy extensionless-phpsin éxito, obtengo 404. Mi simple nginx.confsin try_filesy extensionless-phpse 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.

información relacionada