Um das 404 Dokument zu spezifizieren ist folgende Direktive anzugeben:
ErrorDocument 404 /notfound.htm
Ein Redirect (z.B. ein 301 - Permanent Redirect) kann in der .htaccess Date sehr einfach erstellt werden:
RewriteRule ^(.*)$ http://www.domain.tld/$1 [L,R=301]
Hier ein Beispiel, um sprechende URL's zu generieren. Das Beispiel macht folgendes:
## You should disable Indexes and MultiViews either here or in the
## global config. Symlinks maybe needed for URL rewriting.
Options -Indexes -MultiViews +FollowSymLinks
## make sure nobody gets the htaccess files
<Files ~ "^[\._]ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !css
RewriteCond %{REQUEST_FILENAME} !img
RewriteCond %{REQUEST_FILENAME} !js
RewriteCond %{REQUEST_FILENAME} !robots\.txt
RewriteRule (.*) index.php?p=$1 [QSA,L]
Oft will man alle Subdomains auf www.domain.tld umleiten (z.B. test.domain.tld oder nur domain.tld) und gleichzeitig in der Hauptdomain dann ein URL Rewrite machen. Dies muss mit Conditions gemacht werden. Die Conditions sind immer für die nächste RewriteRule zuständig.
# Always redirect to www.domain.tld if not on www
RewriteCond %{HTTP_HOST} !^www\.domain\.tld$ [NC]
RewriteRule ^(.*)$ http://www.domain.tld/$1 [L,R=301]
# Make the url rewriting if we are on www
RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ [NC]
RewriteRule (.*) index.php?p=$1 [QSA,L]
Dies kann man auf verschiedene Arten lösen, z.B. mit einem Squid oder eben mit einer .htaccess Datei. Anfoderung ist, dass der User Agent auf dem Apache erkennt wird (z.B. dass wen man von einem iPhone aus auf eine Seite kommt) und dann auf eine entsprechende Seite umgeleitet wird.
Folgende Seite zeigt das Mobile Device an und bietet auch ein entsprechendes Script an, welches man in der .htaccess Datei einfügen kann: http://detectmobilebrowser.com/ (dafür mit einem PC auf die Seite gehen).
Mit dem Apache Modul headers kann man den Browser Cache für bestimmte Objekte (Dateiendungen) bestimmen. Folgender Code in der .htaccess speichert alle *.js und *.css Dateien für 24 Stunden in den Cache des Browsers:
<FilesMatch ".(js|css)$"> Header set Cache-Control "max-age=86400" </FilesMatch>