Удалить параметры в 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 от обработки дополнительных значений... любых идей? Все остальные вопросы касаются того, как добавлять параметры - я просто хочу удалить мой:)
Ответы
Ответ 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 '';