.+
любое количество любых символов.[^?]+
любое количество любых символов кроме знака вопроса.если в урле присутствует знак вопроса, но нет параметров.
/page?query?
знак вороса есть и параметры есть.^.+\?$
совпадает https://regex101.com/r/gXxd9W/1^[^?]+\?$
нет https://regex101.com/r/gXxd9W/2 RewriteEngine On
RewriteCond %{REQUEST_URI} !^/toptop
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule .* http://newsite.ru/$0 [R=301,L]
/sto
должно сработать try_files $uri $uri/ /index.php?$args;
и если файл не найден будет перенаправление на /index.php
error_log /var/www/httpd-logs/******.error.log notice;
error_log /var/www/httpd-logs/********.ru.error.log notice;
на всех серверах файл идентичен
?
и добавить флаг QSD.RewriteCond %{QUERY_STRING} ^(brand)=([^&]+)$
RewriteRule ^(en/)?catalog/(.+/)?$ /$0%1/%2/ [R=301,L,QSD]
curl -I -H 'Host: my-site.ru' 'http://127.0.0.1:7080/catalog/?brand=microsoft'
curl -I -H 'Host: my-site.ru' 'http://127.0.0.1:7080/en/catalog/bdsm-kostumi/maski-s-klapom/?brand=microsoft'
https://site.ru -> https://site.ru/
/
после site.ru./
не работает.https://site.ru/path?query
RewriteCond %{REQUEST_URI} ^/.*$
.*
означает ноль или более любых символов.https://site.ru/
RewriteCond %{QUERY_STRING} ^$
https://site.ru/
.php/
, то в конфиге location ~ [^/]\.ph(p\d*|tml)$
$
location / {
try_files $uri $uri/ /index.php?$args;
location ~ [^/]\.ph(p\d*|tml) {
try_files /does_not_exists @php;
}
location @php {
try_files $uri =404;
на try_files $fastcgi_script_name =404;
server { }
где listen 11.11.11.11:443 ssl;
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
try_files $uri $uri/ /index.php?$args;
location / {
try_files $uri $uri/ /index.php?$args;
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
In .htaccess files, the maximum length is 8190 characters
RewriteCond %{QUERY_STRING} ^(ID=6992&PRODUCT)=6905$
RewriteRule ^collections_qr/collection_detail\.php$ /$0?%1=6856 [R=301,L]
RewriteCond %{QUERY_STRING} ^(ID=6992&PRODUCT)=100$
RewriteRule ^collections_qr/collection_detail\.php$ /$0?%1=701 [R=301,L]
RewriteCond %{QUERY_STRING} ^(ID=6992&PRODUCT)=200$
RewriteRule ^collections_qr/collection_detail\.php$ /$0?%1=702 [R=301,L]
RewriteCond %{QUERY_STRING} ^(ID=6992&PRODUCT)=300$
RewriteRule ^collections_qr/collection_detail\.php$ /$0?%1=703 [R=301,L]
RewriteCond "%{QUERY_STRING} 6905=>6856 100=>701 200=>702 300=>703" "^(ID=6992&PRODUCT=)(\d+) .*? \2=>(\d+)"
RewriteRule ^collections_qr/collection_detail\.php$ /$0?%1%3 [R=301,L]
А вот если в выражении будет квантификатор вроде
{1,}
, то обязательно.Иначе nginx не поймёт где заканчивается регулярка и где начинается блок правил.