У меня есть некоторые устаревшие URL-адреса, которые мне нужно перенаправить, которые имеют тильду (~) как часть URL-адреса. У меня возникли проблемы с тем, чтобы правила IIS Rewrite работали.Ошибка повторной записи URL-адреса IIS с Tilde (~)
OLD URL: http://www.example.com/~/media/something/whatever.pdf
нужно его перенаправить: /все
У меня есть следующие правила в месте:
Web.Config
<rewrite>
<rewriteMaps configSource="RewriteMaps.config" />
<rules configSource="RewriteRules.config" />
</rewrite>
RewriteMaps.config
<rewriteMaps>
<rewriteMap name="Legacy URLS">
<!--DOES NOT WORK-->
<add key="~/media/something/whatever.pdf" value="/whatever" />
<!--WORKS-->
<add key="/testing123" value="/whatever" />
</rewriteMap>
</rewriteMaps>
RewriteRules.config
<rules>
<rule name="Redirect rule1 for Legacy URLS" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{Legacy URLS:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
</rules>
Является ли тильда '' 'действительно частью URL (например, у вас на самом деле есть папка'/~ 'на вашем сервере) или используется в контексте ASP.Net (приложение) (для ссылки на« root приложения ») ? – EdSF
К сожалению, по причинам, не зависящим от нас, это часть URL-адреса. –