Перенаправить URL, когда последний символ URL соответствует регулярному выражению - PullRequest
1 голос
/ 31 марта 2019

Я заметил в своих журналах следующие ошибки:

Exception Type: 
System.Web.HttpException
Exception: A potentially dangerous Request.Path value was detected from the client (:).
Stack Trace: 
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

Это происходит, когда в конце URL стоит двоеточие, и это может быть вызвано программным обеспечением электронной почты, которое включает двоеточие в написанное электронное письмо.as "мой сайт находится на www.someurl.com: вы найдете информацию" .

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

Вот что у меня есть: запись, которую я добавляю в web.config

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Rewrite without last colon">
        <match url="[:]\z" /> //not sure this is correct
        <action type="Rewrite" url="not sure what to put" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

1 Ответ

1 голос
/ 03 апреля 2019

Вы можете попробовать это правило перезаписи.

<rule name="Remove colon" stopProcessing="true">
  <match url="(.*):$" />
  <action type="Rewrite" url="{R:1}" />
</rule>

(.*) = everything before the :
$ = end of the string to be matched

Ссылки

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

https://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...