ah, I see...
well, that's done with an extra thing in Apache servers called "mod_rewrite"...
what happens is, the Apache server runs the request URL through a pattern match (regular expressions), and then changes the request internally. this is done in the .htaccess file which can be in your document root for your site.
for example:
Code:
RewriteEngine On
RewriteRule ^/([A-Za-z0-9\_]+)/?$ index.php?page_name=$1 [QSA,L]
so, the user requests "http://www.example.com/username"
and the index.php script is run, with 'username' available as $_GET['page_name']
a better solution is to include some kind of 'type' in the URL - for example, here at HF you have URLs with the 'page' starting with a 't' or and 'f' or a 'p' (or other) - these are used by the HF system to tell the scripts that it is requesting a thread, or a forum, or a post...
Code:
RewriteEngine On
RewriteRule ^/([a-z]{1})\-([A-Za-z0-9\_\-]+)/?$ index.php?page_type=$1&page_name=$2 [QSA,L]