Как использовать web.config для перенаправления на строку запроса в Windows Server 2008 R2?
У меня есть перенаправление, которое я хочу сделать с помощью web.config на сервере IIS 7.5 под управлением Windows Server 2008 R2. Я хотел бы просто создать ярлык URL для другого URL с очень длинной строкой запроса:
www.example.com/redirect-> www.example.com/long_url.aspx?key1=value1&key2=value2
Когда я добавляю следующее правило перезаписи в web.config, оно выдает 500 внутренних ошибок сервера:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="^redirect$" stopProcessing="true">
<match url="^redirect$" />
<action type="Redirect" url="/long_url.aspx?key1=value1&key2=value2" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Что мне нужно изменить, чтобы заставить это работать?
1 ответ
Решение
При добавлении строки запроса в действие правила перезаписи вы должны экранировать все "?" и символы "&" в URL.
- "?" = "& # 63;"
- "&" = "& amp;"
Следующий код будет работать:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="^redirect$" stopProcessing="true">
<match url="^redirect$" />
<action type="Redirect" url="/long_url.aspx?key1=value1&key2=value2" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>