В качестве ключа можно использовать текст, переменные и их комбинации.
Запросы с пустым значением ключа не учитываются.
limit_req_zone $bad_locale zone=zh_limit:10m rate=10r/s;
map $cookie_locale $bad_locale {
default "";
"zh" $binary_remote_addr;
}
map $http_accept_language $bad_locale {
default "";
~^zh $binary_remote_addr;
}
results = "Текст 1&&&Текст 2&&&&&Текст 3&&&&Текст 4".split(/&&&(?!&)/);
console.log(results);
RewriteEngine On
RewriteRule ^katalog/$ https://sait.ru/katalog/index.shtml [R=301,L]
RewriteEngine On
RewriteRule ^$ https://sait.ru/index.shtml [R=301,L]
RewriteRule ^(.+)/$ https://sait.ru/$1/index.shtml [R=301,L]
## Обработка 404 для изображений (если файла нет, отдаём заглушку)
location ~ ^/[^/]+\.(jpg|jpeg|jpe|jif|jfif|png|bmp|gif|tiff|tif|webp|heic|heif|avif|svg|ico)$ {
root /var/www/html/domain.com/img/i;
try_files $uri /res/imgs/errors/404_fallback.png;
}
## Обработка 404 для изображений (если файла нет, отдаём заглушку)
location ~ ^/[^/]+\.(jpg|jpeg|jpe|jif|jfif|png|bmp|gif|tiff|tif|webp|heic|heif|avif|svg|ico)$ {
root /var/www/html/domain.com/img/i;
try_files $uri /fd$uri /res/imgs/errors/404_fallback.png;
}
location ~ ^/img/i(/[^/]+\.(jpg|jpeg|jpe|jif|jfif|png|bmp|gif|tiff|tif|webp|heic|heif|avif|svg|ico))$ {
return 301 https://$host$1;
}
location ~ ^/img/i(?:/fd)?(/[^/]+\.(jpg|jpeg|jpe|jif|jfif|png|bmp|gif|tiff|tif|webp|heic|heif|avif|svg|ico))$ {
return 301 https://$host$1;
}
\G
в PHP и Ruby соответствует началу текущего совпадения, а в Perl. java.util.regex и языках .NET – концу предыдущего совпадения.A=1:2:3 B=1:2:3 A=1:2:3:4:5 B=1:2:3
((?:A=|\G)\d):
$1.
A=1.2.3 B=1:2:3 A=1.2.3.4.5 B=1:2:3
\G
подробнее в книге Джеффри Фридла "Регулярные выражения". location ~ ^/phpmyadmin/(.+\.php)$ {
root /usr/share/phpmyadmin;
location ~ ^/phpmyadmin/(.+\.php)$ {
root /usr/share;
/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;
}
/
, то это обращение к существующей папке (корневой каталог сайта).RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*)/ /$1.html
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.+)/$ /$1.html [L]
if
исполняется только содержимое блока if.add_header
.try_files
не наследуется и исполняется только когда уловие if
ложно.location
.if
в контексте server
таких проблем нет.if
на уровень server
и всё заработает как ожидалось.server {
set $avif_image_path "";
if ($http_accept ~* "image/avif") {
set $avif_image_path "$uri.avif";
}
set $webp_image_path "";
if ($http_accept ~* "image/webp") {
set $webp_image_path "$uri.webp";
}
location ~* \.(png|jpe?g|gif)$ {
add_header Vary Accept;
try_files $avif_image_path $webp_image_path $uri =404;
}
if
и переписать на map
. "text":"Статус"
"text":"\nСтатус"
{"guid":"9851f763-51ec-4f18-9f6c-1...
Статус"},"originalText":"Inventory...
Статус"},"text":"AT-AT"},{"guid":"...
Статус"},{"guid":"5340ae58-20d8-43...
{"guid":"9851f763-51ec-4f18-9f6c-1...
1 Статус"},"originalText":"Inventory...
2 Статус"},"text":"AT-AT"},{"guid":"...
3 Статус"},{"guid":"5340ae58-20d8-43...
\n
<a\s[^>]*href=['"]?https?://[^?\s'">]+\K/(?=[?\s'">])