web.config 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <system.webServer>
  4. <!-- Don't show directory listings for URLs which map to a directory. -->
  5. <directoryBrowse enabled="false" />
  6. <rewrite>
  7. <rules>
  8. <rule name="Protect files and directories from prying eyes" stopProcessing="true">
  9. <match url="\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template|composer\.(json|lock)|\.htaccess)$" />
  10. <action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Forbidden" statusDescription="Access is forbidden." />
  11. </rule>
  12. <rule name="Force simple error message for requests for non-existent favicon.ico" stopProcessing="true">
  13. <match url="favicon\.ico" />
  14. <action type="CustomResponse" statusCode="404" subStatusCode="1" statusReason="File Not Found" statusDescription="The requested file favicon.ico was not found" />
  15. <conditions>
  16. <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  17. </conditions>
  18. </rule>
  19. <!-- Rewrite URLs of the form 'x' to the form 'index.php?q=x'. -->
  20. <rule name="Short URLs" stopProcessing="true">
  21. <match url="^(.*)$" ignoreCase="false" />
  22. <conditions>
  23. <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
  24. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  25. <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
  26. </conditions>
  27. <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
  28. </rule>
  29. <!-- If running on a PHP version affected by httpoxy vulnerability
  30. uncomment the following rule to mitigate it's impact. To make this
  31. rule work, you will also need to add HTTP_PROXY to the allowed server
  32. variables manually in IIS. See https://www.drupal.org/node/2783079.
  33. <rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
  34. <match url="*.*" />
  35. <serverVariables>
  36. <set name="HTTP_PROXY" value="" />
  37. </serverVariables>
  38. <action type="None" />
  39. </rule>
  40. -->
  41. </rules>
  42. </rewrite>
  43. <httpErrors>
  44. <remove statusCode="404" subStatusCode="-1" />
  45. <error statusCode="404" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" />
  46. </httpErrors>
  47. <defaultDocument>
  48. <!-- Set the default document -->
  49. <files>
  50. <remove value="index.php" />
  51. <add value="index.php" />
  52. </files>
  53. </defaultDocument>
  54. </system.webServer>
  55. </configuration>