'How to disable HTTP1.1 and only use HTTP/2 in Windows Server 2016 and IIS 10?
Traffic to my site is using HTTP1.1, and I want to force the server to only use HTTP/2.
I'm running Windows Server 2016 and IIS 10. I've tried adding
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
EnableHttp2Tls: DWORD=1EnableHttp2ClearText: DWORD=1
but it is still serving HTTP1.1.
I'm obviously missing something here, but I'm not exactly sure what. Is what I'm asking for even possible?
Solution 1:[1]
From ServerFault:
Download and install URL Rewrite.
Add the following to your
web.configfile, to the<system.webServer>section:web.config
<rewrite> <rules> <rule name="RequestBlockingRule1" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{SERVER_PROTOCOL}" pattern="HTTP/1.0" /> </conditions> <action type="AbortRequest" /> </rule> </rules> </rewrite>
This will refuse all HTTP 1.0 requests with a HTTP 504 error code.
After installing URL Rewrite, you can also configure rewrite rules in IIS Manager:

Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ian Boyd |
