
Когда я переписываю URL, добавляя строку запроса, URL в браузере не имеет строки запроса. Вот что у меня есть:
location / {
rewrite ^/$ /?page=test break;
}
Вместо этого я вижу оригинальный URL в браузере, когда захожу в корневой каталог. Я могу переписать на другой путь.
решение1
В том виде, в котором вы его написали, это всего лишь переписывание, которое выполняется (и должно выполняться) внутри веб-сервера без ведома пользователя.
Вы можете сделать это видимым для пользователя временно или постоянно, добавив операторы redirect
or permanent
в строку перезаписи (nginx doc для переписывания).
Будьте осторожны с permanent
вариантом (HTTP-код 301), имя вполне буквальное, и браузер сохранит его, поэтому впоследствии его будет сложно изменить — его следует использовать только для миграции на новую систему.
Использование redirect
заставит браузер перезагрузить сайт с новым URL-адресом, поэтому использовать этот метод следует с осторожностью, так как он значительно увеличит время загрузки страницы.
решение2
Эта проблема возникает из-заэтот. перезапись со строкой запроса работает.