Браузер не имеет переписанного URL со строкой запроса

Браузер не имеет переписанного URL со строкой запроса

Когда я переписываю URL, добавляя строку запроса, URL в браузере не имеет строки запроса. Вот что у меня есть:

location / {
    rewrite ^/$ /?page=test break;
}

Вместо этого я вижу оригинальный URL в браузере, когда захожу в корневой каталог. Я могу переписать на другой путь.

решение1

В том виде, в котором вы его написали, это всего лишь переписывание, которое выполняется (и должно выполняться) внутри веб-сервера без ведома пользователя.

Вы можете сделать это видимым для пользователя временно или постоянно, добавив операторы redirector permanentв строку перезаписи (nginx doc для переписывания).

Будьте осторожны с permanentвариантом (HTTP-код 301), имя вполне буквальное, и браузер сохранит его, поэтому впоследствии его будет сложно изменить — его следует использовать только для миграции на новую систему.

Использование redirectзаставит браузер перезагрузить сайт с новым URL-адресом, поэтому использовать этот метод следует с осторожностью, так как он значительно увеличит время загрузки страницы.

решение2

Эта проблема возникает из-заэтот. перезапись со строкой запроса работает.

Связанный контент