Ethernet shield PHP communication

Does your web server use virtual hosting? If you can't access it with the ip (not the domain name), then it probably is using virtual hosting.

You will probably need to send a Host in the header.

    sprintf(outBuf,"GET %s HTTP/1.0\r\nHost: www.mydomain.com\r\n\r\n",page);
    client.write(outBuf);