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 .php

für PHP 5.5
AddType application/x-httpd-php55 .php

für PHP 5.6
AddType application/x-httpd-php56 .php

fü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>

Webdesign · Hosting · Konzeption · Softwareentwicklung