nginx로 첫 번째 웹사이트를 설정하려고 하는데 확장 기능이 없는 PHP 페이지를 작동시킬 수 없는 것 같습니다. 내 페이지를 /aboutme.php
다음과 같이 표시하고 싶습니다 ./aboutme
또는/aboutme
대신 에 내 URL을 변경하여 /aboutme.php
작동시키고 싶습니다 . 다음과 같이 편집하여 CPanel 호스팅에서 마지막 시나리오가 작동하도록 만들었습니다 .htaccess
.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]
그러나 .htaccess
온라인 도구를 사용하여 코드를 nginx로 변환하면 작동하지 않습니다. 나는 또한 내 편집을 시도했지만 nginx.conf
성공 하지 try_files
못했습니다 extensionless-php
. 404를 얻었습니다. 내 일반은 nginx.conf
다음 try_files
과 extensionless-php
같습니다.
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;
}
}
편집: 내 질문이 중복된 것으로 표시되어 성공하지 못했다고 말한 대로 구성하려고 했습니다. '/aboutme'를 방문하면 '404 찾을 수 없음' 메시지가 표시되고 '/aboutme.php'를 방문하면 '.php'를 포함하는 '/aboutme.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;
}
}
답변1
다음을 사용해 볼 수 있습니다.
location / {
try_files $uri $uri.php $uri/ =404;
index index.html index.htm index.php;
}
또한 디렉터리 소유자/액세스 권한을 확인하고 사용자 nginx 및 php-fpm이 실행 중인지(nginx 구성에 정의됨) 해당 디렉터리에 액세스할 수 있는지 확인해야 합니다.