nginx는 PHP를 로드하지만 HTML은 로드하지 않습니다.

nginx는 PHP를 로드하지만 HTML은 로드하지 않습니다.

그래서 우선, 예, 해결책을 찾았지만 찾을 수 없습니다. 문제가 재작성 코드에 있다는 것을 알고 있지만 문제를 해결할 만큼 충분한 지식이 없습니다. 저는 데비안 9.5에서 nginx와 php-fpm을 사용하고 있습니다.

php는 잘 로드되지만 .html은 더 이상 작동하지 않습니다.

server {
    # SSL configuration
    #
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    root /var/www/example.com;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name example.com;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri.php;
        rewrite ^(.*)$ $uri.php;
    }

    location /media {
        autoindex on;
        autoindex_exact_size off;
    }

    # pass PHP scripts to FastCGI server
    #
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
    #
    #   # With php-fpm (or other unix sockets):
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    #   # With php-cgi (or other tcp sockets):
    #   #fastcgi_pass 127.0.0.1:9000;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny all;
    }
}

듣기 주셔서 감사합니다. 답장을 기다리겠습니다.

편집: 명확히 하기 위해 내 의도는 Python 파일이 URL에 .php를 표시하지 않고 html 파일이 정상적으로 로드되도록 하는 것입니다.

답변1

이 구역

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri.php;
    rewrite ^(.*)$ $uri.php;
}

범인인 것 같습니다. 지시어 rewrite는 단순히 모든 URI를 포착하여 파일에 다시 작성합니다 .php.

의견에 따라 편집

비슷한 질문을 바탕으로여기, 내 생각에 당신에게 필요한 것은 다음과 같습니다:

location / { 
    try_files $uri $uri/ @rules; 
} 

location @rules { 
    rewrite ^(.*)$ $1.php last;
}

관련 정보