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.php
aparecessem como/aboutme
ouGostaria apenas de alterar meus URLs para /aboutme
em vez de /aboutme.php
e fazê-los funcionar. Consegui fazer o último cenário funcionar na hospedagem CPanel editando .htaccess
assim:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]
No entanto, se eu converter .htaccess
o código para nginx usando ferramentas online, isso não funcionará. Também tentei editar meu nginx.conf
com try_files
e extensionless-php
sem sucesso, recebo 404. Meu simples nginx.conf
sem try_files
e extensionless-php
fica 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.