Re: редирект запроса без get параметров

fox red-fox0 на ya.ru
Ср Авг 12 15:24:21 UTC 2020


Можно попробовать так:
location /files/products/ {
    # root or alias
    if (!-f $request_filename) { # файл не существует
        rewrite # /resize/resize.php;
        break;
    }
    if ($request_uri ~ '\?') {
        return 301 $uri;
    }
}

location #.php {
    # …
}

11.08.2020 20:41, bagas пишет:
> Добрый день.
> Подскажите пожалуйста по структуре редиректа.
> 
> При запросе к директориям /files/products и /files/content с
> GET-параметром(-ами) и при существовании файла - 301 редирект на основной
> url без GET-параметров (нужно удалить все GET-параметры из URL картинок из
> указанных папок).
> 
> Уточнение если файла не существует, то запрос перенаправляется на php-скрипт
> как и сейчас (try_files $uri $uri/ /resize/resize.php?file=$1&token=$args;)
> вне зависимости от наличия/отсутствия GET-параметров в запросе. 
> 
> Имееются url
> https://local.local/files/products/paal.320x504.png?bca30a33g344y444w5577
> должен сработать 301й редирект на
> https://local.local/files/products/paal.320x504.png
> 
> В nginx делаю.
> location ~ ^/files/products/(.+) {
> try_files $uri $uri/ @bagas;
> if ($query_string ~ "^[A-fa-f0-9]{32}$") {
>     rewrite ^(.*)$ $uri? permanent;
> }
> }
> location @bagas {
>     try_files $uri /resize/resize.php?file=$1&token=$args;
> }
> 
> 
> GET информация обрезается в url, но если нет файла то не происходит передача
> get запроса.
> Подскажите как лучше такое сделать?
> 
> Posted at Nginx Forum: https://forum.nginx.org/read.php?21,289056,289056#msg-289056
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> 



Подробная информация о списке рассылки nginx-ru