Подтвердить что ты не робот

Удалить параметры в nginx переписать

Я перезаписываю URL-адреса в nginx после перезапуска. На старом сайте у меня были параметры запроса в URL-адресе для фильтрации файлов, например.

http://www.example.com/mypage.php?type=4

Новая страница не имеет таких параметров. Я хочу удалить их и переписать URL-адреса на главную страницу, чтобы получить:

http://www.example.com/mypage/

Мое правило перезаписи в nginx:

location ^~ /mypage.php {
    rewrite ^/mypage.php$ http://www.example.com/mypage permanent;
}

Но с этим правилом параметр все еще добавляется. Я думал, что $ остановит nginx от обработки дополнительных значений... любых идей? Все остальные вопросы касаются того, как добавлять параметры - я просто хочу удалить мой:)

4b9b3361

Ответ 1

Была аналогичная проблема, после того, как много поисков ответ был представлен в переписать документы.

Если вы укажете? в конце перезаписи затем Nginx будет отбрасывать исходные $args (аргументы)

Итак, для вашего примера это могло бы сделать трюк:

location ^~ /mypage.php {
    rewrite ^/mypage.php$ http://www.example.com/mypage? permanent;
}

Ответ 2

Чтобы удалить параметр из URL-адреса, в этом случае coupon=xxx:

if ($query_string ~ "^(.*)coupon=(.*)$") {
    rewrite ^(.*)$ $uri? permanent;
}

Обратите внимание, что это приведет к потере всех параметров, если . $uri - это исходный запрос без параметров.

Ответ 3

Попробуйте установить переменную $args, которая будет опущена внутри местоположения.

set $args '';