Symptoms
-
On WordPress website hosted on Plesk for Windows server, the following error is shown on all pages except home page:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. -
Permalinks are enabled in WordPress administrator panel > Settings
-
WordPress basic requirements for permalinks are met: Microsoft IIS 7+ web server with the URL Rewrite 1.1+ module is installed, PHP 5 is running as FastCGI.
-
The following error is present in the IIS Failed Request Tracing log:
ModuleName IIS Web Core
Notification MAP_REQUEST_HANDLER
HttpStatus 404
HttpReason Not Found
HttpSubStatus 0
ErrorCode The system cannot find the file specified. (0x80070002)
Cause
Rewrite rule is not configured or wrong configured for IIS to handle permalinks correctly.
Resolution
-
Go to Domains > example.com > File Manager > Click New > Create File , specify File name as
web.config
and click OK to create the file.
-
Click on
file and paste the following content into the opened Code Editor to configure permalinks via web.config:
web.config<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress Rule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration> -
Click OK to save the file.