domain.com/img/i/image1.png
domain.com/img/i/image1.png
domain.com/img/i/image1.png
domain.com/file/f/image1.dll
domain.com/file/f/image2.zip
domain.com/image1.png
domain.com/image2.png
domain.com/image3.png
domain.com/image1.dll
domain.com/image2.zip
/image1.png
отдать файл /img/i/image1.png
.location ~ ^/[^/]+\.png$ {
root /var/www/img/i;
}
location ~ ^/[^/]+\.(?:dll|zip)$ {
root /var/www/file/f;
}
/img/i/image1.png
на /image1.png
нужен редирект с кодом 301.location ~ ^/img/i(/[^/]+\.png)$ {
return 301 $1;
}
location ~ ^/file/f(/[^/]+\.(?:dll|zip))$ {
return 301 $1;
}
просто чтобы любое просто указать, по типу "*"
location ~ ^/[^/]+\.(png|jpg|gif)$ {
root /var/www/img/i;
}
location ~ ^/[^/]+\.[^/]+$ {
root /var/www/file/f;
}
location ~ ^/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico)$ {
root /var/www/html/domain.com/img/i;
}
location ~ ^/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico)$ {
return 301 $1;
}
location ~ ^/[^/]+\.[^/]+$ {
root /var/www/html/domain.com/file/f;
}
location ~ ^/[^/]+\.[^/]+$ {
return 301 $1;
}
/
location ~ ^/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico)$ {
root /var/www/html/domain.com/img/i;
}
location ~ ^/img/i(/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico))$ {
return 301 $1;
}
location ~ ^/[^/]+\.[^/]+$ {
root /var/www/html/domain.com/file/f;
}
location ~ ^/file/f(/[^/]+\.[^/]+)$ {
return 301 $1;
}
location ~ ^/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico)$ {
return 301 $1;
}
location ~ ^/img/i(/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico))$ {
return 301 $1;
}
location ~ ^/file/f(/[^/]+\.[^/]+)$ {
return 301 $1;
}
/image.png
обрабатывается в location ~ ^/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico)$ {
root /var/www/html/domain.com/img/i;
}
location ~ ^/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico)$ {
root /var/www/html/domain.com/img/i;
}
location ~ ^/img/i(/[^/]+\.(jpg|jpeg|gif|png|svg|bmp|tiff|tga|webp|ico))$ {
return 301 $1;
}
location ~ ^/[^/]+\.[^/]+$ {
root /var/www/html/domain.com/file/f;
}
location ~ ^/file/f(/[^/]+\.[^/]+)$ {
return 301 $1;
}
/var/www/html/domain.com/img/i/kartinka.png
GET /img/i/kartinka.png HTTP/1.1
Host: domen.com
HTTP/1.1 301 Moved Permanently
Location: https://domen.com/kartinka.png
GET /kartinka.png HTTP/1.1
Host: domen.com
HTTP/1.1 200 OK
и передаёт содержимое нужного файла. location ~ ^/(?!index.html)[^/]+\.[^/]+$ {
root /var/www/html/upl.pp.ua/file/f;
}
location = /index.html {
}
server
указан root /var/www/html/domain.com;
location ~ /\.
и внутри deny
или return 403;
И ещё если запрашиваю так же существующий файл без расширения, выдаёт 404
Например https://domain.com/webmin-setup-repos
#. files
location ~ /\.(?!well-known) {
deny all;
}
^/[^/]+\.[^/]+$
^/[^/]+$
location ~ ^/(?!index\.html)[^/]+$ {
root /var/www/html/domain.com/file/f;
}
location ~ ^/file/f(/[^/]+\.[^/]+)$ {
return 301 $1;
}
location ~ ^/file/f(/[^/]+)$ {
return 301 $1;
}
PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpAovX9o' to 'file/f/fuse3-3.9.3-r0.apk' in /var/www/html/domain.com/scripts/file.php on line 107
file/f/fuse3-3.9.3-r0.apk
не начинаетя с /
.