NGINX Разрешить доступ к статическим ресурсам и index.php

. У нас есть старая база кода, которая сбрасывает все в корень общедоступного документа, поэтому мы хотим внести в белый список, к каким файлам можно получить доступ.

Это фактически наша текущая конфигурация

server {
    root /home/forge/www.our-website.com/;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

У нас есть index.php , через который проходит весь динамический контент.

У нас также есть каталог с именем assets , который содержит статические css / images / js и т. д. внутри корня документа.


Как мы можем разрешить доступ только к файлу index.php и содержимому каталога ресурсов?

Спасибо :)

1
задан 31 October 2019 в 16:46
1 ответ

Попробовать

server {

root /home/forge/www.our-website.com/;

index index.php;

#Deny access to everything that don't match 
location / { deny all; }

#Allow root directory so requests could be passed to index.php
location = / {allow all;} 

#Allow index.php
location = /index.php { 
    allow all;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

#Allow assets directory
location /assets/ { allow all;}

}

0
ответ дан 4 December 2019 в 02:34

Теги

Похожие вопросы