In der Standardinstallation des Open Source Content Managment Systems CMS made Simple werden URLs mit einem Query String erzeugt. Die sehen dann z.B. so aus: http://www.domainname.ch/index.php?page=Kontakt
Um suchmaschinenfreundliche URLs (Pretty URLs) zu erzeugen, nutzt CMS made simple das Apachemodul mod_rewrite. Um dies zu aktivieren muss man in der Konfigurationsdatei config.php folgende Änderungen vornehmen:
#------------
#URL Settings
#------------
$config['url_rewriting'] = 'mod_rewrite';
#Endung der virtuellen Dateien
$config['page_extension'] = '.htm';
#Wenn die Seiten in einer Baumstruktur aufgebaut werden sullen (z.B. http://www.domainname.ch/parent/parent/childpage)
$config['use_hierarchy'] = true;
$config['query_var'] = 'page';
Im 2. Schritt passt man noch die .htaccess an:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# ReWrite Rule für News-Feed
RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [S=1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ index.php?page=$1 [QSA]
# Beginn CMSMS Security Einstellungen.
# Directory Browsing abschalten
Options -Indexes
# Zugriff auf config.php verbieten.
order allow,deny
deny from all
# No sense advertising what we are running
ServerSignature Off
# Spambots nach User_agent aussperren
RewriteCond %{HTTP_USER_AGENT} ^.*Whacker.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*FileHound.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*TurnitinBot.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*JoBo.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*adressendeutschland.*$
RewriteRule ^.* - [F]
# 1. unterbindet, das fremde Seiten geladen werden
RewriteCond %{QUERY_STRING} ^(.*)=http://(.*) [OR]
# 2. blockiert libwww (Ausgangspunkt für diverse Hackversuche)
RewriteCond %{HTTP_USER_AGENT} ^libwww [OR]
# Blockiert Skripte, die versuchen, base64 encodierten Unsinn via URL zu versenden
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Blockiert Skripte, die einen a ********** Tag in der URL enthalten
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Blockiert Skripte, die versuchen, PHP GLOBALS Variablen via URL zu ver‰ndern
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Blockiert Skripte, die versuchen, eine _REQUEST Variable via URL zu ver‰ndern
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
# END Optional Settings