Как удалить строку запроса для всех файлов и скриптов, кроме файлов .php в Nginx? - PullRequest
0 голосов
/ 01 июня 2019

Только php-файлы должны иметь строку запроса. Но у меня есть перегрузка запросов со строкой запроса, прикрепленной к файлам без какого-либо расширения, например:

/user/register?%65%6c%65%6d%65%6e%74%5f%70%61%72%65%6e%74%73=%74%69%6d%65%7

, так как в целом это означает, что это попытки выполнить какой-то плохой код, я хочу исключить его на уровне nginx, даже если код php удалит его после. и в этом случае я хотел бы вернуть код ошибки 414. Я застрял на том, как начать логику. Я также много читал об использовании try_files, но потом получаю 404 ошибки, даже если скрипт php существует.

location / {
 set args "";
}

location ~ \.php$ {
    if ($request_uri ~ ^/([^?]*\.php)($|\?)) {  return 301 /$1?$args;  }
    ...
}

Я получил 404 ошибки или слишком много перенаправлений, что бы я ни делал

...