My experience with SD Cards, is that reading from them is more stable than writing to them. So, if you have an SDHC-USB converter that can plug into your PC (and many vendor/models exists) then format and initialize the SD Card at your PC.
There is a free software package called SDFormatter V3.1 that does a good job of formatting the SDHC card with a FAT32. Do NOT trust that the disk is formatted correctly after using it several times in the SD slot.
Use 8.3 file naming conventions, and format the file as a FAT32 device. Finally, load the web pages that you want to deliver onto the root of the SD card.
Now, plug the SD card into the Arduino slot and try reading from the card. Do NOT initialize or format the card at the Arduino. Just allocate, or begin the SDHC device and read the card's root directory files.
Please post your test program. The program with Ethernet stuff does not appear to correctly "begin" the SD card. This is why you should get reading the card and printing a file to your monitor, prior to getting the Ethernet connection working (which it looks like it is, so once your file test program works you should be done!)
With a FAT32 formatted card, write a test program that will open a file and write its contents on the Serial
line back to your PC. Debug this functionality before working on the wireless/ethernet connection.