As of version 1.4 (available via the downloads page) simple supports URL aliasing. URL aliasing is a method by which plain text URLs are mapped to CMS managed pages - so instead of URLs like "mywebsite.com/pages/100.php" you can have URLs like "mywebsite.com/PenguinsAreAwesome."
Each page now has a field named "Virtual File Name" that describes how that page should be aliased. It's filled in by default from the Page Title when you make a new page, but you can edit it at any time. The Virtual File Name is created by taking the Page Title, removing everything but letters and numbers, and then converting it all to lower case.
The full alias is built not only using the Virtual File Name, but the page's parentage. Each parent, grand-parent, etc ... to that page will appear as a virtual folder in the URL. Because of that, aliased URLs take the form "http://mywebsite.com/grandparent/parent/page" - and a child to that page would have an alias of "http://mywebsite.com/grandparent/parent/page/child."
Even though simple can maintain and build these URLs automatically, you will still need to do some customization in Apache to get this functioning.
If you don't have access to your website's httpd.conf file your best bet for aliasing is to use a custom error page to look for aliases since you'll be able to configure this through an HTACCESS file.
First, create a page to be your 404 File Not Found page. You can do this by creating a new CMS page that does not appear in the menu and has an error message written on it. Make note of the page's URL.
Second, create a text file in the root directory of your website called ".htaccess" - or if the file already exists, open it in a text editor. Add the following line of text:
ErrorDocument 404 /pages/#.php
Where "/pages/#.php" is the URL of the page you just created.
Third, open your settings file and add the following line:
$Handle404Aliasing = true;
Your new error page will now automatically redirect URL aliases.
Because IIS doesn't have a built-in equivalent for Apache's mod_rewrite, you will likely have to use the error page method for URL aliasing. For instructions on specifying a custom error page in IIS, please refer to this MSDN article: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/80cb8d8d-8fd8-4af5-bb3b-4d11fff3ab9c.mspx?mfr=true
Although more complicated, mod_rewrite - and more specifically RewriteMap - give you the ability to have URL aliasing without redirection. In practice, this means that where the previous method will change the URL from "http://mywebsite.com/example" to "http://mywebsite.com/pages/#.php," mod_rewrite will keep the alias URL and display the page. You will need to have access to your website's httpd.conf file for this, since RewriteMap cannot be specified in .htaccess.
First, make sure that the file "/simple_cms/simple_rewrite.map" exists, and is writable by the web server process.
Second, alter your settings file to include the following:
$MaintainAliasList = true;
Third, log in to simple and publish at least one page to ensure that the alias list is up to date. The alias list will be updated every time a page is published, created, moved, or deleted from here on out.
Fourth, open httpd.conf for editing. Add the following code outside of the Directory statement:
RewriteEngine On
RewriteRule ^(.+)/$ $1
RewriteMap tolowercase int:tolower
RewriteRule ^(.*)$ ${tolowercase:$1}
RewriteMap redirects txt:/your/web/site/location/simple_cms/simple_rewrite.map
RewriteCond ${redirects:$1} >""
RewriteRule ^(.*)$ ${redirects:$1|$1} [L]
RewriteRule ^(.*)$ %{REQUEST_URI} [L]
Be sure to edit the "RewriteMap" line to reflect the actual location of this file on your hard drive.
Finally, save this file and restart the Apache web server. If Apache fails to restart, remove the new block of code from httpd.conf and restart Apache, then contact your server administrator to diagnose the error.
You are now able to use aliases in links you provide to others, but in order to get these aliased links into search engines you'll need to place the following line of code in your settings file:
$UseAliasesInLinks = true;
This will tell simple to use aliases when generating menus and breadcrumbs. Simple will still use page numbers in page content since those links cannot be automatically updated, but your site navigation will use aliases instead. Remember that if you change a virtual file name, the alias will change and any links you distributed will become invalid.