Разрешающая логика

Igor Sysoev is at rambler-co.ru
Fri Nov 13 14:44:12 MSK 2009


On Fri, Nov 13, 2009 at 06:29:05AM -0500, shebeko wrote:

> Помогите плиз. Как-то туго у меня с регулярными выражениями.
> Как бы написать такой конфиг, в котором бы отдавались только те файлы , которые явно разрешены.
> Т.е. только файлы с явно разрешёнными расширениями.
> И заодно как запретить отдавать всё что лежит в директориях .svn
> 
> Поиском не нашёл.
> То что сам пробовал сваять, так как-то либо всё отдаётся, либо ничего :(
> 
> Вот конфиг виртуального хоста целиком.
> 
>     server
>     {
>         listen www.v2.vnetgis.com:80;
>         server_name  www.v2.vnetgis.com v2.vnetgis.com;
> 
>         root   /home/www/sites/vnet/data;
> 
>         location /
>         {
>             index  index.html index.htm index.php;
>         }
> 
>         location ~* ^.+\.php$
>         {
>             include        inc/fastcgi_params;
>             fastcgi_pass   unix:/tmp/php5.socket;
> 
>             fastcgi_index index.php;
>             fastcgi_connect_timeout 60;
>             fastcgi_send_timeout 180;
>             fastcgi_read_timeout 180;
>             fastcgi_buffer_size 32k;
>             fastcgi_buffers 4 32k;
>             fastcgi_busy_buffers_size 32k;
>             fastcgi_temp_file_write_size 32k;
>             fastcgi_next_upstream off;
>             fastcgi_intercept_errors on;
> 
>             fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
> 
>         }
> 
>         access_log  /a/nginx/log/access.log;
> 
>         error_page  401  /errors/401.err;
>         error_page  403  /errors/403.err;
>         error_page  404  /errors/404.err;
>         error_page  502  /errors/502.err;
>         # Gateway Time-out
>         error_page  504  /errors/504.err;
> 
>         location /errors/
>         {
>            root   /home/www/sites/default/data;
>         }
> 
>         location ~* ^.+\.(gif|png|jpg|jpeg)$
>         {
>            access_log   off;
>            expires      30d;
>         }
> 
>         location ~* ^.+\.(txt|js|css|zip|rar)$
>         {
>           access_log   off;
>           expires      30d;
>         }
>     }

location / {
    return 403;
}

location ~ /\.svn/ {
    return 403;
}

location ~* ^.+\.(gif|png|jpg|jpeg)$ {
    ...
}

location ~* ^.+\.(txt|js|css|zip|rar)$ { 
    ...
}

location ~* ^.+\.php$ {
    ...
}

location /errors/ {
    ...
}


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list