<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <defaultDocument> <files> <remove value="index.php" /> <add value="index.php" /> </files> </defaultDocument> <rewrite> <rules> <rule name="request_filename" stopProcessing="true"> <match url="." ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> <rule name="user_error_redirect" stopProcessing="true"> <match url="^(user)/(.*)\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$" ignoreCase="false" /> <action type="Redirect" url="error" redirectType="Permanent" /> </rule> <rule name="ignore_folders" stopProcessing="true"> <match url="^(\.git|cache|bin|logs|backup|webserver-configs|tests)/(.*)" ignoreCase="false" /> <action type="Redirect" url="error" redirectType="Permanent" /> </rule> <rule name="system" stopProcessing="true"> <match url="^system/(.*)\.(txt|md|html|yaml|yml|php|twig|sh|bat)$" ignoreCase="false" /> <action type="Redirect" url="error" redirectType="Permanent" /> </rule> <rule name="vendor" stopProcessing="true"> <match url="^vendor/(.*)\.(txt|md|html|yaml|yml|php|twig|sh|bat)$" ignoreCase="false" /> <action type="Redirect" url="error" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> <system.web> <httpRuntime requestPathInvalidCharacters="<,>,*,%,&,\,?" /> </system.web> </configuration>