Nginx: configuração configurada para fazer páginas php sem extensão funcionarem

Nginx: configuração configurada para fazer páginas php sem extensão funcionarem

Estou tentando configurar meu primeiro site com nginx e não consigo fazer páginas php sem extensão funcionarem. Eu gostaria que minhas páginas /aboutme.phpaparecessem como/aboutme ouGostaria apenas de alterar meus URLs para /aboutmeem vez de /aboutme.phpe fazê-los funcionar. Consegui fazer o último cenário funcionar na hospedagem CPanel editando .htaccessassim:

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

No entanto, se eu converter .htaccesso código para nginx usando ferramentas online, isso não funcionará. Também tentei editar meu nginx.confcom try_filese extensionless-phpsem sucesso, recebo 404. Meu simples nginx.confsem try_filese extensionless-phpfica assim:

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: minha pergunta foi marcada como duplicada, então tentei configurá-la como foi dito sem sucesso, se eu visitar '/aboutme' recebo '404 não encontrado', se eu visitar '/aboutme.php', é aberto como '/aboutme.php' com '.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;
}
}

Responder1

Você pode tentar usar o seguinte:

location / {
    try_files $uri $uri.php $uri/ =404;
    index index.html index.htm index.php;
}

Você também deve verificar o proprietário do diretório/permissões de acesso e ver se o usuário nginx e php-fpm está executando como (definido na configuração do nginx) pode acessar esses diretórios.

informação relacionada