Разница между nginx rewrite и redirect заключается в следующем:
- Rewrite позволяет переписать запросеченный URL на другой URL до его обработки сервером. 1 При этом замена происходит внутри сервера, а запросеченный URL в браузере не меняется. 1
- Redirect позволяет перенаправить браузер на другой URL и продолжить обработку по этому адресу. 1 Когда браузер запрашивает конкретный URL, сервер отправляет ответ с перенаправлением вместе с адресом перенаправления. 1 Затем браузер автоматически отправляет новый запрос по адресу перенаправления, поэтому запросеченный URL в браузере меняется. 1
Таким образом, при rewrite замена происходит на сервере, а при redirect — браузер сообщает, что запросеченный ресурс перемещён на другой URL, и обновляет адресную строку. 2