I had quite some trouble getting a custom 400 error document to work.  I added this to the top level of my Apache conf:

ErrorDocument 404 /404.html
ErrorDocument 400 /400.html


And created the two error documents in the DocumentRoot.  First, I tested the 404 with:

echo -en "GET /foo HTTP/1.0\n\n" | nc 127.0.0.1 80


This returned my custom 404.

Then the 400 (Note that the leading slash is missing):

echo -en "GET foo HTTP/1.0\n\n" | nc 127.0.0.1 80


The response was the default Apache 400.

I did manage to get my custom 400 back by talking HTTP to an HTTPS vhost:

echo -en "GET / HTTP/1.0\n\n" | nc 127.0.0.1 443


You still get the same custom 400 back, even if you make an invalid request:

echo -en "GET foo HTTP/1.0\n\n" | nc 127.0.0.1 443


Unfortunately for your testing, talking SSL to a non-ssl vhost doesn't result in a 400 of any sort.  I still haven't figured out how to get a custom ErrorDocuemnt 400 to be sent back on port 80.

P.S.  I remember reading somewhere that an ErrorDocument 400 won't work inside a .htaccess file as it may not be possible to even determine the correct DocumentRoot if the request is malformed.  The same probably applies to name based virtualhosts.

Apache ErrorDocument directive not working
I am dealing with one very mercurial professor and I had a bit of an incident with him. I think I might have offended him slightly (I told him about the deadline to submit a letter of recommendation (LOR) in the nicest possible way and yet he flared up on me). My seniors tell me that he has the habit of extracting revenge on people who ask him for a LOR if they irritate him. I am afraid I might have offended him; he kinda scares me. But he is a very good researcher in computer networks and I performed well in his class. I don't want to drop him and choose another faculty.

Now I know very well that the other two lecturers are going to rate me well, but if this lecturer gives me a bad rating will it harm my chances of getting admitted?
