By default your site's URLs will look like this
http://example.com
/site/pmwiki.php?n=Main.PageName
or
http://example.com
/site/?n=Main.PageName
If you enable "Clean URLs" they can look like this instead
http://example.com
/site/Main/Pagename
or
http://example.com
/Main/Pagename
Clean URLs look like "paths" to your pages rather than ?parameter=value
server requests (which is what they are).
TL;DR: You can enable Clean URLs by following the PmWiki CleanURLs recipe.
Do It Early or Don't Do It
If you want your content to be discoverable you probably want to get your URLs sorted out early. The reason is because when you make the change every one of your pages will "disappear" from one URL and "reappear" at another.
One PmWiki site that comes to mind is the TV Tropes site that has URLS with "pmwiki.php/
" in the path. Here's one of their URLs:
http://tvtropes.org/pmwiki/pmwiki.php/Administrivia/WelcomeToTVTropes
I assume the site owner leaves the path that way because it's not a good idea to break established links.
Changing URLs of established pages has been considered bad practice for decades. Here's a 1998 reference from the inventor of the web himself, Tim Berners-Lee: https://www.w3.org/Provider/Style/URI
It's Not That Hard
Configuring Clean URLs seems intimidating because you need to create a .htaccess
file with just the right configuration directives in it. Fortunately you don't need to completely understand the exact meaning of the directives. Once you get it working, it will Just Work.
Visit the PmWiki CleanURLs recipe page and give it a try.
How It's Done Here
For what it's worth, QuickWikiCMS.com has this in its .htaccess file, located in the docroot (web document root) directory.
# Don't allow directory indexes Options -Indexes # Use mod_rewrite to enable "Clean URLs" for a PmWiki installation. RewriteEngine On # The rewrite base will be the document root. RewriteBase / # Send requests without parameters to pmwiki.php. RewriteRule ^$ /site/pmwiki.php [L] # Send requests for index.php to pmwiki.php. RewriteRule ^index\.php$ /site/pmwiki.php [L] # Don't rewrite requests for any files, directories, or symbolic # links (shortcuts) that exist on the filesystem. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d ##RewriteCond %{REQUEST_FILENAME} !-l # Send requests to pmwiki.php, appending the query string part. RewriteRule ^([A-Z0-9\xa0-\xff].*)$ /site/pmwiki.php?n=$1 [QSA,L]
The matching config.php entries are
$ScriptUrl = "http://www.quickwkicms.com"; [...] $EnablePathInfo = 1;