Если location задан префиксной строкой со слэшом в конце и запросы обрабатываются при помощи proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass или grpc_pass, происходит специальная обработка. В ответ на запрос с URI равным этой строке, но без завершающего слэша, будет возвращено постоянное перенаправление с кодом 301 на URI с добавленным в конец слэшом. Если такое поведение нежелательно, можно задать точное совпадение URI и location
^/assets/(.+)-400x400\.(png|jpg)$
location ~ ^/assets/((?:[^/]+/)++.+)-400x400\.(png|jpg)$ {
try_files /image/data/$1.$2 /assets/$1.$2;
}
location
и rewrite
для сопоставления используют URI запроса в нормализованном виде, т.е. уже после декодирования текста, заданного в виде %XX.%20
будет преобразован в пробел и шаблон [%\w]
совпадений не найдёт. [L]
./fignya/chtotam
это существующий файл? Или он снова будет обработан index.php?$_SERVER['REQUEST_URI']
. Там останется исходный адрес /chtotam/. /
RewriteCond %{HTTP_HOST} ^(www\.)?site\.ru$ [NC]
RewriteRule ^prop/name/$ /prop/1234-nazvanie/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?site\.ru$ [NC]
RewriteRule ^prop/other-name/$ /prop/1234-drugoie-nazvanie/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?site\.es$ [NC]
RewriteRule ^prop/name/$ /prop/1234-nombre/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?site\.es$ [NC]
RewriteRule ^prop/other-name/$ /prop/1234-otro-nombre/ [R=301,L]
[R=301,L,NE]
[A-z]
нужно учитывать, что в этот интервал попадают не только буквы, но и другие символы.Z
идут символы [ \ ] ^ _ `
и только потом a
.