Resolving 405 Method Not Allowed on Plesk IIS (PUT/DELETE Requests)
Modern applications like WordPress (Gutenberg) and Elementor require the use of PUT and DELETE request methods. On Windows/Plesk servers, these are often blocked by default, resulting in a "405 Method Not Allowed" error when trying to save changes.
This issue is typically caused by the WebDAV module hijacking the request or the PHP handler being restricted to only GET and POST verbs.
Affected platforms
- Windows Server 2012, 2016, 2019, and 2022
- Plesk Obsidian (Windows Edition)
- IIS 7 and later
Solution 1: Removing WebDAV (Recommended)
The WebDAV module often intercepts PUT requests before PHP can see them. Add this to your site's web.config file inside the <system.webServer> section:
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
Solution 2: Opening Handler Verbs
If the web.config fix fails, you must manually open the PHP handler verbs via PowerShell (Admin). Replace "yourdomain.com" with the actual site:
- Find handler name:
C:\Windows\System32\inetsrv\appcmd.exe list config "yourdomain.com" -section:system.webServer/handlers | findstr ".php" - Update verbs (replace [NAME] with result from step 1):
C:\Windows\System32\inetsrv\appcmd.exe set config "yourdomain.com" -section:system.webServer/handlers "/[name='[NAME]'].verb:*" /commit:apphost
CRITICAL SECURITY WARNING: Before opening all verbs in Solution 2, you must ensure WebDAV is disabled (Solution 1). Opening all verbs while WebDAV is active can create security vulnerabilities or cause the module to continue hijacking requests, preventing the fix from working.
Explanation: Setting
verb="*" ensures that the PHP FastCGI handler accepts all modern HTTP methods (PUT, PATCH, DELETE) required by the WordPress REST API.
Production Note: These changes use
/commit:apphost, which targets only the specific site's configuration. No iisreset is required, making this safe for servers hosting 1,000+ sites.