Search code examples
phpwordpresswindows-10http-status-code-403iis-10

IIS and PHP: HTTP Error 404.3 - Not Found: The page you are requesting cannot be served because of the extension configuration


I'm trying to setup PHP and WordPress on IIS. I followed this post. I also checked here and here.

But still get an error when requesting my page: http://www.example.com/wordpress/wp-admin/post.php HTTP Error 404.3 - Not Found: The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

However, I am able to request the info.php (with just this code: <?php phpinfo(); ?>) and I get the expected results, first section here:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link {color: #000099; text-decoration: none; background-color: #ffffff;}
a:hover {text-decoration: underline;}
table {border-collapse: collapse;}
.center {text-align: center;}
.center table { margin-left: auto; margin-right: auto; text-align: left;}
.center th { text-align: center !important; }
td, th { border: 1px solid #000000; font-size: 75%; vertical-align: baseline;}
h1 {font-size: 150%;}
h2 {font-size: 125%;}
.p {text-align: left;}
.e {background-color: #ccccff; font-weight: bold; color: #000000;}
.h {background-color: #9999cc; font-weight: bold; color: #000000;}
.v {background-color: #cccccc; color: #000000;}
.vr {background-color: #cccccc; text-align: right; color: #000000;}
img {float: right; border: 0px;}
hr {width: 600px; background-color: #cccccc; border: 0px; height: 1px; color: #000000;}
</style>
<title>phpinfo()</title><meta name="ROBOTS" content="NOINDEX,NOFOLLOW,NOARCHIVE" /></head>
<body><div class="center">
<table border="0" cellpadding="3" width="600">
<tr class="h"><td>
<a href="http://www.php.net/"><img border="0" src="/info.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42" alt="PHP Logo" /></a><h1 class="p">PHP Version 5.3.28</h1>
</td></tr>
</table><br />
<table border="0" cellpadding="3" width="600">
<tr><td class="e">System </td><td class="v">Windows NT MSFT-SURFA 6.2 build 9200 (Unknow Windows version Enterprise Edition) i586 </td></tr>
<tr><td class="e">Build Date </td><td class="v">Dec 10 2013 22:04:40 </td></tr>
<tr><td class="e">Compiler </td><td class="v">MSVC9 (Visual C++ 2008) </td></tr>
<tr><td class="e">Architecture </td><td class="v">x86 </td></tr>
<tr><td class="e">Configure Command </td><td class="v">cscript /nologo configure.js  &quot;--enable-snapshot-build&quot; &quot;--enable-debug-pack&quot; &quot;--disable-zts&quot; &quot;--disable-isapi&quot; &quot;--disable-nsapi&quot; &quot;--without-mssql&quot; &quot;--without-pdo-mssql&quot; &quot;--without-pi3web&quot; &quot;--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared&quot; &quot;--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared&quot; &quot;--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared&quot; &quot;--with-enchant=shared&quot; &quot;--enable-object-out-dir=../obj/&quot; &quot;--enable-com-dotnet=shared&quot; &quot;--with-mcrypt=static&quot; &quot;--disable-static-analyze&quot; </td></tr>
<tr><td class="e">Server API </td><td class="v">CGI/FastCGI </td></tr>
<tr><td class="e">Virtual Directory Support </td><td class="v">disabled </td></tr>
<tr><td class="e">Configuration File (php.ini) Path </td><td class="v">C:\WINDOWS </td></tr>
<tr><td class="e">Loaded Configuration File </td><td class="v">C:\Program Files (x86)\PHP\v5.3\php.ini </td></tr>
<tr><td class="e">Scan this dir for additional .ini files </td><td class="v">(none) </td></tr>
<tr><td class="e">Additional .ini files parsed </td><td class="v">(none) </td></tr>
<tr><td class="e">PHP API </td><td class="v">20090626 </td></tr>
<tr><td class="e">PHP Extension </td><td class="v">20090626 </td></tr>
<tr><td class="e">Zend Extension </td><td class="v">220090626 </td></tr>
<tr><td class="e">Zend Extension Build </td><td class="v">API220090626,NTS,VC9 </td></tr>
<tr><td class="e">PHP Extension Build </td><td class="v">API20090626,NTS,VC9 </td></tr>
<tr><td class="e">Debug Build </td><td class="v">no </td></tr>
<tr><td class="e">Thread Safety </td><td class="v">disabled </td></tr>
<tr><td class="e">Zend Memory Manager </td><td class="v">enabled </td></tr>
<tr><td class="e">Zend Multibyte Support </td><td class="v">disabled </td></tr>
<tr><td class="e">IPv6 Support </td><td class="v">enabled </td></tr>
<tr><td class="e">Registered PHP Streams </td><td class="v">php, file, glob, data, http, ftp, zip, compress.zlib, https, ftps, phar, sqlsrv   </td></tr>
<tr><td class="e">Registered Stream Socket Transports </td><td class="v">tcp, udp, ssl, sslv3, sslv2, tls </td></tr>
<tr><td class="e">Registered Stream Filters </td><td class="v">convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.* </td></tr>
</table><br />
<table border="0" cellpadding="3" width="600">
<tr class="v"><td>
<a href="http://www.zend.com/"><img border="0" src="/info.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42" alt="Zend logo" /></a>
This program makes use of the Zend Scripting Language Engine:<br />Zend&nbsp;Engine&nbsp;v2.3.0,&nbsp;Copyright&nbsp;(c)&nbsp;1998-2013&nbsp;Zend&nbsp;Technologies<br /></td></tr>
</table><br />
</body></html>

SOLUTION: (thanks to @Kul-Tigin)

My wordpress\web.config file contained code:

    <handlers>
        <remove name="PHP53_via_FastCGI" />
    </handlers>

After commenting that out, it works.


Solution

  • In IIS, HTTP 404.3 Not Found error occurs in two conditions.

    • The handler mapping for the requested file name extension is not configured.
    • The appropriate MIME type is not configured for the Web site or for the application.

    Since the problemmatic page is a script, you need to configure an appropriate handling mapper.

    Before doing that it would be good practice to check web.config files in all your possible sub directories in case an upper level handler mapping configuration removed locally from there with a <remove directive under configuration/system.webServer/handlers.