htaccess-Datei
Die htaccess-Datei steuert das Serververhalten. Hier geben geben wir Ihnen Antwort zu den häufigsten Aufgaben dieser Datei.
SSL für eine Webseite erzwingen
Nach "RewriteEngine On" muss in der .htaccess folgendes stehen
RewriteCond %{SERVER_PORT} !443
RewriteRule (.*) %{HTTP_HOST}/$1 [R=301,L]
Anfragen ohne "www" umleiten zur "www"-Domain
Um Doublecontent zu vermeiden muss sicher gestellt sein, dass die Webseite nur unter einer URL zu erreichen ist. Seiten, die mit "www.domainname" und einfach unter "domainname.de" den selben Inhalt ausgeben werten die Suchmaschinen als "DoubleContent" und werten das Ranking ab.
In der .htaccess muss nach "RewriteEngine On" folgendes stehen um ein umschreiben der URL zu erzwingen
RewriteCond %{HTTP_HOST} !^www\.domain\.de$ [NC]
RewriteRule ^(.*)$ www.domain.de/$1 [R=301,L]
Alte URLs umleiten
Bei der Umstrukturierung einer Webseite ist es oft erforderlich gelöschte URLs zu ihren neuen Seiten zu leiten. Dazu schriebt man in die .htaccess pro Umleitung folgende Zeile
Redirect 301 /alte/seite.html /neuer/pfad/zur/seite.html
PHP-Version für ein Verzeichnis umstellen
Um die PHP-Version umzustellen nutzen Sie
für PHP 5.4
AddType application/x-httpd-php54 .phpfür PHP 5.5
AddType application/x-httpd-php55 .phpfür PHP 5.6
AddType application/x-httpd-php56 .phpfür PHP 7
AddType application/x-httpd-php7 .php
Wichtig:
In der Serverkonfiguration muss immer eine niedrigere PHP-Version eingestellt sein als die, die Sie in der htaccess-Datei einstellen möchten!
Domain in ein Unterverzeichnis leiten
Wenn ie die Domain "www.domain.de" in ein Unterverzeichnis leiten wollen
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteCond %{REQUEST_URI} !^/unterverzeichnis/
RewriteRule ^(.*)$ /unterverzeichnis/$1
Beachten Sie dass die Domain "domain.de" damit nicht umgeleitet wird, es wird nur die www-adresse umgeleitet.
Umleitung je nach Browsersprache
Möchten Sie alle Anfragen von nicht-deutschen Browsern umleiten nutzen Sie folgenden Code, dieser leitet alle Anfragen nicht-deutscher Browser an www.domain.de in das Verzeichnis "en"
RewriteEngine on
RewriteCond %{HTTP_HOST} www.domain.de [NC]
RewriteCond %{HTTP:Accept-Language} !(de)
RewriteRule ^$ /en [R=301,L]
Dateien oder Pfade umleiten
Sie können Anfragen an "/agb.pdf"auf eine beliebige Seite (z.B. "http://www.domain.de/neue_seite.php?id=1") weiterleiten:
Redirect /agb.pdf http://www.domain.de/neue_seite.php?id=1
So können Sie Shortcut-Urls wie "/aktion" auf eine Seite (z.B. "http://www.domain.de/video.htm?page=123") umleiten:
Redirect /aktion www.domain.de/video.htm
Zugriff auf bestimmte Dateien sperren
Wenn sie beispielsweise den Abruf von *.pem-Dateien sperren möchten tragen Sie folgendes in die .htaccess ein:
<Files *.pem>
Deny from all
</Files>
Webserverseitige Komprimierung aktivieren
Um den Webserver dazu zu bringen dass er den Inhalt Ihrer Webseite vor der Auslieferung komprimiert nutzen Sie folgenden Eintrag in der htaccess.Datei
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/html text/xml
AddOutputFilterByType DEFLATE text/css text/javascript
AddOutputFilterByType DEFLATE application/xml application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript application/x-javascript
</IfModule>
Hinweis: Eine Komprimierung über gzip wird aktuell auf unseren Servern nicht über die .htaccess-Datei unetrstützt.
Browsercache beeinflussen
Sie können festlegen wann bestimmte Dateitypen "verfallen". Das heisst das diese Dateitypen nach einer gewissen Zeit vom Browser auf jeden Fall wieder neu geladen werden:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>