content negotiation is part of the HTTP specification and supported by Apache2 and nginx. For Apache, you need to enable multiviews for the directories in question. Then AddLanguage for each language.
The full list of language abbreviations is found in ISO 639. The module negotiation should already be enabled.
AddLanguage en .en
AddLanguage fi .fi
AddLanguage sv .sv
LanguagePriority en fi sv
DirectoryIndex index index.html
Then the hard work comes. You need to make an extra copy of each web page for each additional language. So if you have Finnish, Swedish and English, you would have three index pages:
Then if the user visits "index.html" the browser will redirect to the correct match or else the default. Your site can use generic links, e.g. "index.html", or else explicit links to a specific language, e.g. "index.sv.html"