понедельник, 8 июня 2015 г.

stopProcessing в URL Rewrite

В правилах IIS URL Rewrite есть несколько опасный флаг stopProcessing. По умолчанию он установлен в false, т.е. даже если очередное правило сработало, обработка дальнейших правил продолжается. Т.е. более общие правила, которые расположены в конце файла, могут "поглотить" правильный результат.

Это случится, если, допустим, первое правило должно отлавливать одну конкретную URL /deals/chrismas/ , а второе правило - все остальные типы спецпредложений с URL вида /deals/*/ (где зведочка - что угодно, но не сhristmas).

Коварность флага заключается в том, что он игнорируется, если Вы делаете простое перенаправление (301/302 redirect). Поэтому в Интернете множество примеров кода без этого флага, и многие про него просто не знают. На месте Microsoft я бы по умолчаю установил его в true.

Чтобы не запутаться, я всегда использую stopProcessing="true" для Rewrite. И никогда не использую для Redirect (чтобы не засорять код).


Комментариев нет:

Ratings by outbrain