Nginx разрешить указать c расширения файлов для папки root - PullRequest
0 голосов
/ 03 августа 2020

У меня есть сайт, работающий на движке php Modx Revo и обслуживаемый nginx. У меня много файлов в папке root, и теперь они доступны из inte rnet с URL-адресами mysite.com / README.md . Я хочу запретить доступ ко всем из них, кроме файлов с расширениями, которые я хочу указать вручную (json, js, html и png); Вот мой nginx config

server {
    listen 443 ssl;
    server_name mysite.com;
    access_log off;
    root /var/www/mysite.com;
    index index.php;

    #ssl stuff

    location / {
        root /var/www/mysite.com;
        if (!-e $request_filename) {
                rewrite ^/(.*)$ /index.php?q=$1 last;
        }
        
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   unix:/run/php/php7.2-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_ignore_client_abort on;
        fastcgi_param  SERVER_NAME $http_host;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 128k;
    }

    location ~*^.+\.(jpg|jpeg|gif|png|css|zip|pdf|js|ico|html) {
        root   /var/www/mysite.com/;
        access_log off;
        expires max;
    }
  
}

Мне нужна помощь с новым правилом nginx, чтобы запретить доступ ко всем файлам в папке root (site.com/cronjob.sh, site. com / anyfile.anyext) кроме файлов с расширениями . json,. js,. html, .png (site.com/data.json, site.com/pic.png)

...