Предупреждение:
Вы говорите, что это «ASP.NET (не MVC)».Я предполагаю, что это означает, что вы используете WebForms, а не ASP.NET Core.Следующий совет может быть использован в обоих случаях, но в случае с ASP.NET Core, только если вы размещаете с IIS.
Ответ:
Выищите IIS URL Rewrite , модуль, который можно установить в IIS, затем настроить через web.config
.Одной из функций, которую это обеспечивает, является перезапись карт, которые, по сути, представляют собой список из и в отображений URL, где запрос на первый вызовет перенаправление на последний.Документация для карт перезаписи URL приведена здесь , а вот пример из документации:
Определите ваши сопоставления:
<rewrite>
<rewriteMaps>
<rewriteMap name="StaticRewrites" defaultValue="">
<add key="/article1" value="/article.aspx?id=1&title=some-title" />
<add key="/some-title" value="/article.aspx?id=1&title=some-title" />
<add key="/post/some-title.html" value="/article.aspx?id=1&title=some-title" />
</rewriteMap>
</rewriteMaps>
</rewrite>
Затем добавьте правило перезаписи, чтобы использоватьтолько что определенные вами сопоставления:
<rules>
<rule name="Rewrite Rule">
<match url=".*" />
<conditions>
<add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" />
</rule>
</rules>
В вашем случае вы захотите использовать действие Redirect
вместо Rewrite
.
Модуль предоставляет множество других опций конфигурации.