Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get IIS6 to recognize pathinfo routes instead of returning "404 Undescribed" error?

I am developing a RESTful web application in PHP. What I have got is:

  1. on the test server, Windows 7 / Apache 2.2 / PHP 5.2.9 (mod_php)
  2. on the production server, Windows Server 2003 / IIS6 / PHP 5.2.4 (php5isapi.dll)

While the test environment has got no problem, the production server fails to send any RESTful request with pathinfo (i.e., pages like e.g. /mypath/app.php/controller/id, where the handling script is /mypath/app.php) and gives a nice blank page with the message:

No input file specified. 

Using firebug, I can see the response headers are:

HTTP/1.1 404 Undescribed
Proxy-Connection: close
Connection: close
Via: 1.1 XXXXX
Date: Thu, 23 Jun 2011 14:51:18 GMT
Content-Type: text/html
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET, PHP/5.2.4

Where XXXXX is the name of the proxy.

I googled around and it seems like neither SO nor the rest of the web can give practical solutions to this problem. Any clue?

Since the production server needs to keep up, reinstalling PHP and/or IIS is not an option. What I can do is modify IIS/PHP configuration, and restart IIS.

Thanks in advance,

Paolo

like image 654
Paolo Stefan Avatar asked Jun 23 '11 15:06

Paolo Stefan


3 Answers

@hakre posted a good answer, but it was another thing that solved this issue, which I report briefly to save hours of pain to others...

I got rid of the problem by:

  • editing php.ini on the production server, commenting out the doc_root=... line;
  • restarted IIS;
  • launched services.msc on the production server, restarted the "World Wide Web Publishing Service";

now, all pages work just fine reporting PATH_INFO correctly.

Thanks for the answers anyway!

If anyone cares, this page illuminated me.

like image 184
Paolo Stefan Avatar answered Nov 02 '22 14:11

Paolo Stefan


Un-check the Verify that file exists check-box.

That's an option in the Internet Information Services Manager you can find in the Web Sites Properties Home Directory Configuration for the .php Application Mapping.

Edit the mapping for the website in question and disable the file existance check. Then pathinfo should work as expected.

More Info

like image 26
hakre Avatar answered Nov 02 '22 15:11

hakre


try rewrite support using ISAPI_REWRITE(http://www.isapirewrite.com/)

like image 26
hanguofeng Avatar answered Nov 02 '22 13:11

hanguofeng