If you follow the instructions for installing Sputnik to work with CGI, your Sputnik will have a URL that includes "sputnik.cgi?" in it. It's a little ugly, but the good news is that you can get rid of it. Suppose your Sputnik is currently running as "http://www.example.com/cgi-bin/sputnik.cgi". You can make it be http://www.example.com/wiki/, where a page named "Some_Page" would be located at "http://www.example.com/wiki/Some_Page". Much better looking.
How you do this depends on what web server you are using. Here are the instructions for Apache.
This change requires two steps. First, we'll need to tell Apache that a request for "/wiki/" should be interpreted as a request for "/cgi-bin/sputnik.cgi" and a request for "/wiki/Some_Page" should be interpreted as request for "/cgi-bin/sputnik.cgi?p=Some_Page". We do this by editing (or creating) a file called called ".htaccess" in the root of Apache's document directory, putting the following lines into it:
RewriteEngine On
RewriteBase /
RewriteRule ^wiki/$ /cgi-bin/sputnik.cgi
RewriteRule ^wiki/(.*)$ /cgi-bin/sputnik.cgi?p=$1
Make sure that your .htaccess is readable by Apache.
Then test it. When you go to http://www.example.com/wiki/ you should see your home page and when you go to http://www.example.com/wiki/Some_Page you should see "Some Page".
If this worked, go to the next step: edit "sputnik/config" and set NICE_URL to "/wiki/" in the sputnik/config node:
NICE_URL = "/wiki/"
This will make sure that Sputnik not only responds to the /wiki/ requests but also points all links to /wiki/ rather than to "/cgi-bin/sputnik.cgi".
The above rewrite rules work when changing ^wiki/... to cgi-bin/... because once rewritten, the path never matches ^wiki/ again. If you have a domain that hosts just a wiki (like "http://wiki.example.com/SomePage"), then its easy to get circular rewrite loops. I broke the rewrite loops by explicitly matching for rewritten paths, and stopping:
RewriteRule ^sputnik.cgi - [L]
RewriteRule ^(.*)$ /sputnik.cgi?p=$1
The .* matches anything, including ^sputnik.cgi, so the first rule says to match sputnik.cgi, don't substitute it, and stop processing. If it doesn't match the first rule, it will get rewritten by the second.
On Lighttpd simply add the following lines to your server configuration:
server.modules += ( "mod_rewrite" )
url.rewrite-once = ( "^/wiki/(?!cgi\-bin|sputnik\.cgi)(.*)$" => "/wiki/cgi-bin/sputnik.cgi?p=$1" )
Here are the Apache rewrite rules to mount a Sputnik instance on the wiki/ directory:
RewriteEngine On
RewriteBase /
RewriteRule ^wiki/$ http://127.0.0.1:8080/sputnik.ws [P]
RewriteRule ^wiki/(.*)$ http://127.0.0.1:8080/sputnik.ws?p=$1 [P]
RewriteRule ^sputnik.ws$ http://127.0.0.1:8080/sputnik.ws [P]
RewriteRule ^sputnik.ws?p=(.*)$ http://127.0.0.1:8080/sputnik.ws?p=$1 [P]
These should go under the directory directive for the document root if you want BASE_URL.."wiki/" to point to your Sputnik instance.
Configuration to have Sputnik use your nice URL to generate links is the same as CGI.