Unfortunately, I have discovered that there is actually a bug in apache. When no Accept-Language: header is given the language of the file returned is random. If the Accept-Language: is specified, everything works correctly.
Here is an example of what is happening: List of available files lrwxrwxrwx 1 treacy debwww 14 Oct 12 11:09 devel/people.html -> people.html.en -rw-rw-r-- 1 treacy debwww 91442 Oct 24 22:22 devel/people.html.en -rw-rw-r-- 1 treacy debwww 91737 Oct 25 14:49 devel/people.html.es -rw-rw-r-- 1 treacy debwww 82581 Aug 27 23:46 devel/people.html.it (the symlink exists so apache has a backup to offer in case the language negotiation doesn't come up with anything acceptable. This is shown in the case below where the non-existant language rr is asked for) ----------------------------------------------------------------------------- get -S -O - http://www.debian.org/devel/people | head -2 --23:03:44-- http://www.debian.org:80/devel/people => `-' Connecting to www.debian.org:80... connected! HTTP request sent, awaiting response... 200 OK 2 Date: Tue, 27 Oct 1998 04:03:45 GMT 3 Server: Apache/1.3.3 (Unix) Debian/GNU 4 Vary: accept-language 5 Cache-Control: max-age=86400 6 Expires: Wed, 28 Oct 1998 04:03:45 GMT 7 Last-Modified: Fri, 28 Aug 1998 06:46:58 GMT 8 ETag: "3a1823-14295-35e65262" 9 Accept-Ranges: bytes 10 Content-Length: 82581 11 Connection: close 12 Content-Type: text/html 13 Content-Language: it 14 0K -> ..<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//IT"> <HTML lang="it"> I do not believe the Vary: header should be returned in this case. ----------------------------------------------------------------------------- wget -S -O - --header="Accept-Language: rr" http://www.debian.org/devel/people | head -4 --23:04:36-- http://www.debian.org:80/devel/people => `-' Connecting to www.debian.org:80... connected! HTTP request sent, awaiting response... 200 OK 2 Date: Tue, 27 Oct 1998 04:04:37 GMT 3 Server: Apache/1.3.3 (Unix) Debian/GNU 4 Vary: accept-language 5 Cache-Control: max-age=86400 6 Expires: Wed, 28 Oct 1998 04:04:37 GMT 7 Last-Modified: Sun, 25 Oct 1998 05:22:19 GMT 8 ETag: "3a1808-16532-3632b58b" 9 Accept-Ranges: bytes 10 Content-Length: 91442 11 Connection: close 12 Content-Type: text/html 13 0K -> ..<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML lang="en"> ----------------------------------------------------------------------------- wget -S -O - --header="Accept-Language: en" http://www.debian.org/devel/people | head -4 --23:04:57-- http://www.debian.org:80/devel/people => `-' Connecting to www.debian.org:80... connected! HTTP request sent, awaiting response... 200 OK 2 Date: Tue, 27 Oct 1998 04:04:58 GMT 3 Server: Apache/1.3.3 (Unix) Debian/GNU 4 Vary: accept-language 5 Cache-Control: max-age=86400 6 Expires: Wed, 28 Oct 1998 04:04:58 GMT 7 Last-Modified: Sun, 25 Oct 1998 05:22:19 GMT 8 ETag: "3a1808-16532-3632b58b" 9 Accept-Ranges: bytes 10 Content-Length: 91442 11 Connection: close 12 Content-Type: text/html 13 Content-Language: en 14 0K -> .<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML lang="en"> ----------------------------------------------------------------------------- wget -S -O - --header="Accept-Language: es" http://www.debian.org/devel/people | head -4 --23:05:10-- http://www.debian.org:80/devel/people => `-' Connecting to www.debian.org:80... connected! HTTP request sent, awaiting response... 200 OK 2 Date: Tue, 27 Oct 1998 04:05:11 GMT 3 Server: Apache/1.3.3 (Unix) Debian/GNU 4 Vary: accept-language 5 Cache-Control: max-age=86400 6 Expires: Wed, 28 Oct 1998 04:05:11 GMT 7 Last-Modified: Sun, 25 Oct 1998 22:49:41 GMT 8 ETag: "3a180b-16659-3633ab05" 9 Accept-Ranges: bytes 10 Content-Length: 91737 11 Connection: close 12 Content-Type: text/html 13 Content-Language: es 14 0K -> .<!--translation 1.5--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//ES"> <HTML lang="es"> ----------------------------------------------------------------------------- wget -S -O - --header="Accept-Language: it" http://www.debian.org/devel/people | head -4 --23:05:37-- http://www.debian.org:80/devel/people => `-' Connecting to www.debian.org:80... connected! HTTP request sent, awaiting response... 200 OK 2 Date: Tue, 27 Oct 1998 04:05:37 GMT 3 Server: Apache/1.3.3 (Unix) Debian/GNU 4 Vary: accept-language 5 Cache-Control: max-age=86400 6 Expires: Wed, 28 Oct 1998 04:05:37 GMT 7 Last-Modified: Fri, 28 Aug 1998 06:46:58 GMT 8 ETag: "3a1823-14295-35e65262" 9 Accept-Ranges: bytes 10 Content-Length: 82581 11 Connection: close 12 Content-Type: text/html 13 Content-Language: it 14 0K -> .<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//IT"> <HTML lang="it"> -----------------------------------------------------------------------------

