Я пытаюсь настроить правило перезаписи, чтобы возвращать 404 для каталога в веб-приложении Azure. Мы используем Sitecore, поэтому я хотел бы заблокировать доступ к интерфейсу администратора Sitecore на наших серверах доставки.
В моем web.config я добавил следующее правило перезаписи
<rule name="Block Sitecore Access Rule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_URI}" pattern="^/sitecore" />
</conditions>
<action type="CustomResponse" statusCode="404" statusReason="Not Found" statusDescription="Cause I said so" />
</rule>
Однако это правило не действует. Если я изменю код состояния на 403 вот так, правило сделает то, что я ожидал:
<action type="CustomResponse" statusCode="403" statusReason="Not Found" statusDescription="Cause I said so" />
Это указывает мне, что 404 не разрешено.
Веб-приложения Azure не поддерживают CustomResponse с кодом 404 или мне чего-то не хватает?
У меня работает, если я просто использую match
вместо того conditions
. Я протестировал перезапись, чтобы заблокировать доступ к каталогу изображений, сначала с помощью 403
:
<rule name="Test 404" stopProcessing="true">
<match url="img/*" />
<action type="CustomResponse" statusCode="403" />
</rule>
А потом с 404
:
<rule name="Test 404" stopProcessing="true">
<match url="img/*" />
<action type="CustomResponse" statusCode="404" />
</rule>
Удаление перезаписи: