htaccess Befehle - Website X5 Hilfe - Die Helpsite

Direkt zum Seiteninhalt

Hauptmenü:

htaccess Befehle

Scripte > Snipped

Die wichtigsten htacces-Befehle im Überblick

.htaccess-Dateien sind Server-Konfigurationsdateien für Verzeichnisse. So kann man mit .htaccess nur bestimmten Benutzern den Zugriff auf bestimmte Daten erlauben, ganze Benutzerkreise automatisch (ohne Passwortzugang) aussperren oder alle bis auf bestimmte nach unten aussperren, automatische Weiterleitungen zu einer Seite einstellen, eigene Regelungen für den Fall von HTTP-Fehlermeldungen schaffen, bestimmte Bedingungen schaffen um alternative Inhalte anzubieten und schließlich sogar einstellen, ob Daten komprimiert an den aufrufenden Browser übertragen werden können oder ob bei Aufrufen von Adressen auf eine andere URL Seite umgeleitet werden sollen.

Will man eine .htaccess oder .htpasswd löschen und kann sie aber nicht sehen, gibt man im FTP-Programm das eine Kommandozeile besitzt, 'delete .htaccess' oder 'delete .htpasswd' ein, und schon wird die jeweilige Datei gelöscht. Eine solche Kommandozeile besitzen z.B. WS-FTP, Windows-Commander, Total commander, Filezilla oder CoreFTP.
Noch einfacher geht es indem eine leere .htaccess oder .htpasswd Datei erstellt wird (eine leere .txt Datei erstellen und in .htassess oder .htpasswd umbennenen) und auf den Server laden. Die vorhandenen Dateien werden somit überschrieben.
Neue Dateien erstellt man auf der gleichen Weise, indem die Dateien auf den Server geladen und dort umbenannt werden.

.htaccess umbenennen
Es wird die Datei .neuerfilename als .htaccess-Datei verwendet.

AccessFileName .neuerfilename

Sicherer Passwortschutz
Sehr viele Webserver unterstützen passwortgeschützte Verzeichnisse mit .htaccess. Es werden hier zwei Dateien benötigt.
.htaccess - diese Datei regelt den Zugrif (access) auf das Verzeichnis und .htpasswd - in dieser Datei steht das eigentliche Passwort und der Benutzername. Das Passwort ist natürlich verschlüsselt. Zum verschlüsseln werden etliche Programme angeboten oder man nutzt komplette Dienste zur .htaccess- und .htpasswd-Erstellung wie hier.

AuthType Basic
AuthName "Passwortschutz"
require valid-user
AuthUserFile /.htpasswd

Inhalt der .htpasswd (x5forum:x5user):
x5forum:$1$mjSn9YSt$Nfb2wTdN2t.LNqhQ5fIR21

Alle Besucher sperren
Soll z.B. wegen Wartungsarbeiten die Seite kurzfristig für alle Besucher gespert werden, macht das dieser Code.

order allow,deny
allow from all
deny from

User mit IP sperren
Dieser Code bewirkt, dass nur User mit einer bestimmten IP-Adresse Zugriff auf den Server haben. Alle anderen User werden geblockt.

order deny,allow
allow from 123.456.78.007
deny from all

IP-Adressen sperren
Weitere Funktionen, die häufig zum Einsatz kommen, sind IP-Sperren. Bestimmte IP-Adressen haben mit diesem Code keinen Zugriff.

order allow,deny
allow from all
deny from 27.101.84.2001

IP-Adressen und Websiten sperren
Hier wird der Zugriff für alle Host aus der Domain meineDomain.de gesperrt. Der Host traffic.website.com darf ebenfalls nicht zugreifen. Alle Zugriffe eines Rechners, dessen IP mit 192.168 beginnt, werden hier auch gesperrt. Alle anderen dürfen uneingeschränkt auf die Seiten zugreifen.

order allow,deny
deny from .meineDomain.de
deny from traffic.website.com
deny from 192.168
allow from all

Aufruf einer Seite, Datei, ect. verhindern
Dieser Code verhindert den Aufruf der .htaccess Datei. Anstelle von .htaccess kann selbstverständlich jede beliebige Datei, Seite oder sonstige File eingesetzt werden.

<Files .htaccess>
order allow,deny
deny from all
</Files>

Bestimmte Dateien sperren
Der nebenstehende Code sorgt dafür, dass keine Dateien, die mit einem Punkt beginnen (wie z.B. die .htaccess selbst) vom Server aus gedownloadet werden können.

<FilesMatch "^" >
deny from all
</FilesMatch>

Clients und/oder User aussperren
Clients (Bots, Websauger, Grabber, usw.) können mittels diesem Befehl ausgesperrt werden.
Sollen mehr als zwei Clients ausgesperrt werden, so muss die logische Oder Anweisung [OR] wiederholt werden.

Einzelnen Client aussperren:
RewriteEngine on
RewriteCond %HTTP_USER_AGENT ^Client1.*
RewriteRule ^/.* - [forbidden]
Zwei Clients aussperren:
RewriteEngine on
RewriteCond %HTTP_USER_AGENT ^Client1.* [OR]
RewriteCond %HTTP_USER_AGENT ^Client2.*
RewriteRule ^/.* - [forbidden]
Drei Clients aussperren:
RewriteEngine on
RewriteCond %HTTP_USER_AGENT ^Client1.* [OR]
RewriteCond %HTTP_USER_AGENT ^Client2.* [OR]
RewriteCond %HTTP_USER_AGENT ^Client3.*
RewriteRule ^/.* - [forbidden]

Bilder und Grafiken schützen
Oftmals werden Grafiken von einer Webseite auf anderen Webseiten verlinkt. Zwar kann der Grafikklau nicht unterbunden werden, aber zumindest die Verlinkung kann verhindert werden um so den unnötigen Traffic der dadurch entsteht zu minimieren.
Das Kopieren der Grafiken auf den lokalen PC wird nicht verhindert.

RewriteEngine on
RewriteCond %HTTP_REFERER !^$
RewriteCond %HTTP_REFERER !^http://(www)?meineDoamin.de/.*$ [NC]
RewriteRule (jpg| jpeg|gif|png)$ - [F]

Verzeichnisauflistung an bzw. aus
Man kann festlegen, ob der Apache einen Fehler zurückgeben soll, wenn sich keine Startseite in einem Verzeichnis befindet, oder ob er den Inhalt des Verzeichnisses ausgeben soll.

Inhalt ausgeben:
Options +Indexes
oder Fehler Ausgeben:
Options -Indexes

Crawler ausschließen
Suchmaschinen (Crawler) kann man aussperren, indem man wie hier im Beispiel den BackWeb Crawler mit diesem Code fernhält.

RewriteEngine On
RewriteCond %HTTP_USER_AGENT ^BackWeb

Dateitypen zum Download freigeben
Hier kann dem Browser expliziet angeben werden, welche Dateitypen zum Download angeboten werden sollen. Im Beispiel werden Dateiendungen .doc, .pdf, .zip und .rar zum Download freigegeben.

<FilesMatch "(doc|pdf|zip|rar)$" >
ForceType application/octet-stream
</FilesMatch>

Bestimmte Seite als Startseite definieren
Oftmals ist die index.html Datei als Startseite definiert. Mit diesem Code wird z.B. die index.php als Startseite bestimmt

DirectoryIndex index-xy.php

Bestimmte Reihenfolge als Startseite definieren
Hier versucht der Apache der Reihenfolge nach die index.html anzuzeigen, findet er diese nicht, dann mit der index.htm usw.

DirectoryIndex index.html index.htm index.php xyz.html xyz.php

C-NAMES Startseiten
Mit diesem Code können unterschiedliche Startseiten für mehere Domains (sog. C-NAMES) angesprochen werden. Beispiel:
domain1.de --> domain.de/index1.html
domain2.de --> domain.de/index2.html
Alle Domains zeigen dabei auf das gleiche Verzeichnis.

RewriteEngine On
RewriteCond %HTTP_HOST ^(www)?domain1
RewriteRule ^$ index1.html
RewriteCond %HTTP_HOST ^(www)?domain2
RewriteRule ^$ index2.html

Standarddomain definieren 1 (Duplicate Content vermeiden)
Um zu verhindern das z.B. Google die Website unter http://www.meineDomain.de und http://meineDomain.de erreicht bedarf es nur einer kleinen Eintragung. Durch diesen Befehl in der .htaccess im Stammverzeichnis erzwingt man den Server per mod_rewrite alle Browser und Bots auf “www.*” umzuleiten.

Options +FollowSymlinks
RewriteEngine on
RewriteCond %HTTP_HOST !^www$ [NC]
RewriteRule ^(.*)$ http://www.meineDoamin.de/$1 [R=301,L]

Standarddomain definieren 2 (Duplicate Content vermeiden)
Selbsttverständlich gibt es auch die Möglichkeit seine Website immer OHNE www. aufrufen zu lassen. Der Code hierfür sieht ähnlich dem oberem aus.

Options +FollowSymlinks
RewriteEngine on
RewriteCond %HTTP_HOST ^([^.]+)de$ [NC]
RewriteRule ^(.*)$ http://meineDoamin.de/$1 [R=301,L]

Standarddomain definieren 3 (Duplicate Content vermeiden)
Es besteht die Möglichkeit URLs mit oder ohne Trailing Slash am Ende der URL aufzurufen. Aus eigentlich einer Seite werden nun zwei = Doppelter Content! Dies lässt sich vermeiden indem an jede URL immer ein abschließender Schrägstrich (/-Slash) setzt.

Options +FollowSymlinks
RewriteEngine on
RewriteCond %REQUEST_URI ^/[^]+[^/]$
RewriteRule ^(.*)$ http://%HTTP_HOST/$1/ [R=301,L]

Verwendung von ExecCGI ON/OFF
Mit dem Includes wird die Verwendung von Server Side Includes gestattet oder abgeschalten.

Options -ExecCGI --> CGI-Scripts werden untersagt
Options +ExecCGI --> CGI-Scripts werden möglich

Server Side Includes ON bzw. OFF
Identisch dem oberen Code wird mit Includes die Verwendung von Server Side Includes erlaubt oder abgeschalten.

Options -Includes
--> Server Side Includes abgeschaltet.
Options +Includes
--> Server Side Includes eingeschaltet.

Weiterleitungen zur Startseite
Ruft jemand die URL http://www.webseite.de/beispielverzeichnis auf landet er ohne weiteren Zwischenstopp direkt auf der Startseite.

Redirect /beispielverzeichnis http://www.webseite.de

URL Rewriting
Dieser Code bewirkt, das Seiten wie z.B. http://www.meineDoamin.de/index.php?go=home umbenannt wird in: http://www.meineDoamin.de/home.html!

RewriteEngine on
RewriteRule ^(.*).html$ index.php?go=$1 [L]

Auf https:// Umleiten
Mit diesem Code kann eine Website die mit http:// aufgerufen wird automatisch auf https:// umgeleitet werden.

RewriteEngine On
RewriteCond %SERVER_PORT !=443
RewriteRule ^(.*)$ https://www.domainname.de/$1 [R=301,L]

Weiterleitungen Unterverzeichnis auf Hauptseite
Ändert man die Verzeichnisstruktur, kann man Fehlerseiten vermeiden indem der Besucher auf die Startseite (root) weiterleitet.

RewriteRule ^ordner/ordner oder seite/?$ / [R=301,L]

Ganze Domain weiterleiten (Domainumzug)
Dieser Befehl leitet jeden URL-Aufruf auf eine andere Domain um.

Redirect 301 / http://www.deine-neue-seite.de/

Weiterleitungen (301 Redirect) 1
Hier wird mit einem sogenannten permanent Redirect (301 Redirect) werden umbenannte oder umgezogene Webseiten umgeleitet.

Redirect permanent /seite.html http://www.neue-domain.de/seite.html

Weiterleitungen (301 Redirect) 2
Von /verzeichnis/alt.html wird auf http://www.domain.com/neu.html weitergeleitet und ein Status-Code 301 an den Spider ausgeliefert.

Redirect 301 /verzeichnis/alt.html http://www.seite.dem/neu.html

Weiterleitungen Einzeldateien
Hier wird beim Aufruf der Seite seo.html direkt zur Seite suchmaschinenoptimierung.html weitergeleitet.

Redirect /seo.shtml suchmaschinenoptimierung.shtml

Fehlerbehandlung (404 Fehlerseite)
Damit anstelle von der Standard Servermeldung eine individuelle angepasste Webseiten ausgegeben wird, sobald eine falsche URL eingegeben wird, muss folgender Code in der htaccess Datei stehen:
   oben = Weiterleitung zur Fehlerseite auf einer anderen Domain.
   mitte = Weiterleitung zur Fehlerseite auf der eigenen Domain.
   unten = Ausgabe des eingegebenen Textes als Fehlermeldung.

ErrorDocument 403 http://www.domain.de/403.html
ErrorDocument 404 http://www.domain.de/404.html
oder:
ErrorDocument 403 /fehler/403.html
ErrorDocument 404 /fehler/404.html
oder:
ErrorDocument 403 "Der Zugriff wurde verweigert."
ErrorDocument 404 "Die Seite bzw. Datei wurde entfernt oder wird zur Zeit Überarbeitet."

PHP-Befehle in .html-Seiten
Damit auf HTML-Seiten PHP-Befehle ausgeführt werden, muss via der htaccess Datei dieses mittgeteilt werden.
Mit diesem Code wird dem Webserver gesagt, dass alle Dateien mit der Endung .htm oder .html zuerst vom PHP-Programm abgearbeitet werden sollen, bevor diese an den Browser weitergeschickt werden.

AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
oder:
AddType application/x-httpd-php .html .htm
oder für neueren Versionen von PHP bzw. Apache:
AddHandler application/x-httpd-php .html .htm

parse-errors ausgeben
Wenn in der php.ini der Display_Errors auf off gesetzt ist und kein Zugriff auf diese Datei besteht, wird ein parse-errors ausgeben.

php_flag display_errors true

Umlautproblem Content als UTF-8
Damit sollte der Browser den Inhalt korrekt als UTF-8 darstellen.

AddDefaultCharset UTF-8

Umlautproblem Content als ISO-8859-1
Damit sollte der Browser den Inhalt korrekt als ISO-8859-1 darstellen.

AddDefaultCharset ISO-8859-1

Umlautproblem bestimmter Dateien
Damit werden Dateien mit der Endung .html als UTF-8 dargestellt.

AddCharset UTF-8 .html

Umlautproblem bestimmter Dateitypen
Damit werden Dateien mit Typ Text und .html als UTF-8 dargestellt.

AddType 'text/html; charset=UTF-8' html

Umlautproblem mehrerer Dateiendungen
Damit sollte der Browser den Inhalt der Dateien mit den Endungen .htm, .html, .css und .js korrekt als UTF-8 darstellen.

<filesMatch ".(htm|html|css|js)$">
AddDefaultCharset UTF-8
</filesMatch>

Umlautproblem mehrerer Dateitypen
Damit sollte der Browser den Inhalt der Dateien mit dem Typ Text und mit den Endungen .htm, .html, .css und .js korrekt als UTF-8 darstellen.

<filesMatch ".(htm|html|css|js)$">
ForceType 'text/html; charset=UTF-8'
</filesMatch>

Feedbacks zu ""

es gibt insgesamt 0 Kommentar(e)



Name*
Vorname
Kommentar*
Email *
Homepage
Telefon
Sicherheitscode *
 
Logo HTML5
Button Spenden

© 2009 - 2017




  Besucher Statistik
 » 2 Online
 » 3 Heute
 » 1053 Woche
 » 3754 Monat
 » 61269 Jahr
 » 237569 Gesamt
Rekord: 1420 (10.04.2014)
Zurück zum Seiteninhalt | Zurück zum Hauptmenü