Перенаправление HTTP и перезапись URL (IIS)

В меню IIS у вас есть HTTP Redirect и URL Rewrite. Последний затем имеет действие перезаписи и действие перенаправления. Мне интересно, в чем разница между всем этим.

0
задан 9 November 2017 в 17:04
1 ответ

HTTP-перенаправление - это модуль, который выполняет HTTP-перенаправление, которое представляет собой ответ 300 уровня с заголовком Location. Браузеры читают эту 300-уровневую реакцию, анализируют заголовок Location и перенаправляют на указанный адрес. Визуально мы видим изменение адреса браузера.

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

Перезапись URL-адреса приводит к перезаписи URL-адреса на другие значения до запуска многих модулей. Это приводит к тому, что выполнение будет выполняться на основе измененного URL-адреса вместо исходного. Это полностью серверная сторона, поэтому браузер в конце получает ответ HTTP. Если ответы не являются ответом уровня 300, мы даже не увидим изменение URL-адреса в браузере.

Пример перезаписи

Допустим, у вас есть страница веб-форм ASP.NET с /Users.aspx?id = 3 страница для поиска информации о пользователе 3.Мы должны создать правило, которое соответствует ^ users / (\ d +) $, и переписать это правило в /user.aspx?id={R:1}. Это приводит к тому, что URL-адрес вида http: // server / users / 3 будет обрабатываться внутри как http: //server/users.aspx? Id = 3 . Браузер не увидит изменение адреса.

Тот же пример с перенаправлением

Если бы указанное выше правило было правилом перенаправления. URL / users / 3 вызовет ответ на уровне 300 с заголовком Location, установленным на /users.apsx?id=3, и браузер перейдет на эту страницу. Мы увидим адрес браузера http: //server/users.aspx? Id = 3

2
ответ дан 4 December 2019 в 13:29

Теги

Похожие вопросы