Ошибка 400 Bad Request - индивидуальное перенаправление - PullRequest
0 голосов
/ 25 апреля 2018

Компания Seo просит перенаправлять каждый 404 неверный запрос на конкретный URL. Я попросил перенаправить ошибку 400 (неверный запрос) на специальную страницу.

Я могу сделать это в файле web.config, но каждый URL-адрес требует специальной страницы например https://stackoverflow.com/questions/askhttps://stackoverflow.com/questions/ask => (301) https://stackoverflow.com/questions/ask https://stackoverflow.com/questionshttps://stackoverflow.com/questions => (301) https://stackoverflow.com/questions

Возможно ли это? Мое приложение ASP.NET (не MVC) на IIS SERVER

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

В веб-формах asp.net установите страницу, т.е. Redirect.aspx, чтобы перенаправить все ошибки типа 400:

<configuration>
 <system.web>
   <customErrors defaultRedirect="Error.htm"
                 mode="RemoteOnly">
     <error statusCode="400"
            redirect="Redirect.aspx"/>
   </customErrors>
 </system.web>

затем на странице посмотрите URL, по которому он пришел:

Request.UrlReferrer

затем обработать соответственно

0 голосов
/ 25 апреля 2018

Предупреждение:

Вы говорите, что это «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&amp;title=some-title" />
            <add key="/some-title" value="/article.aspx?id=1&amp;title=some-title" />
            <add key="/post/some-title.html" value="/article.aspx?id=1&amp;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.

Модуль предоставляет множество других опций конфигурации.

...