error_page 404 /error/404/;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|ttf)$ {
expires 180d;
}
location / {
try_files $uri /index.php?do=$uri;
/blog/22/
-> /index.php?do=/blog/22/
/file.jpg
-> /index.php?do=/error/404/
stream {
server {
listen 443;
proxy_protocol on;
listen 8443 ssl http2
добавить proxy_protocol.listen 8443 ssl http2 proxy_protocol
set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;
.+
любое количество любых символов.[^?]+
любое количество любых символов кроме знака вопроса.если в урле присутствует знак вопроса, но нет параметров.
/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'