Here is a summary of things that I said in class that are not explained in the book.
Setting up the server for language negotiation is not difficult. However, you must remember to allow for content negotiation in the server. This means that you must add the option MultiViews. The strange thing is that Options All doesn't include MultiViews, you must add it explicitly
Options All MultiViews
See the reference on page 100 of the book about MultiViews.
Testing that it works can be frustrating. First, you must understand that language negotiation is done in the browser and on the server, with the browser getting precedence over the server. In other words, if the browser specifies that it wants English, then if doesn't matter what the server specifies. The only time that the server's preference is used, is when the browser doesn't specify a language preference.
To see what languages the Netscape 4.0 browser prefers:
At this point, you will see a list of the languages that your browser prefers. You can add other languages to the list, you can re-order the list, and you can delete languages from the list. To use the server's language preferences, just remove all the languages from the list.
One other problem that can interfere with seeing your preferred page, is the cache. You must clear the cache of the old page and the reload the page after you have changed your preferred language. To clear the cache do the following in Netscape 4.0:
Now when you reload the page, it should be the page for your preferred language.
Adding icons isn't too difficult either, but there is a problem that can happen. Two directives can interfere with each other. Basically, place the most restrictive icon directives first. So, you may need to change the order of some of the general directives (like the one for text/*) in order to have the more specific one (like text/x-me) take effect.
As the book says on page 95, under AddIconByType:
If more than one MIME type matches, the first match is used. Therefore you should declare your most specific directives first.
The VirtualHost directive isn't working as advertised on mongoose. Use the
command
<VirtualHost *:port>
where port is you new virtual host port number. Ignore the error message
you get when you restart the server.
In class I made an error that applies to assignment 3. I indicated that one of the directives for limiting user access was AuthFile, it is AuthUserFile.