htaccess Befehle - Website X5 Helpsite

Logo Schriftzug
Logo WSX5
Scan QR or Download Android App
Direkt zum Seiteninhalt

htaccess Befehle

Scripte > Snipped

Die wichtigsten htaccess-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.
Download Button
Die meisten FTP-Programme können in den Einstellungen des Programms entsprechend angepasst werden, um versteckte Dateien angezeigen zu lassen.
Noch einfacher geht es indem mit einem geeigneten Editor eine leere .htaccess oder .htpasswd Datei erstellt wird (eine leere .txt Datei erstellen, bearbeiten, umbenennen) 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. Dateien sollten immer binär auf den Server geladen werden.
Dokumentationen in der .htaccess-Datei werden mit der Raute # maskiert: # ## --- Das ist meine htaccess --- ##
Am Ende der Seite befindet sich die generierte .htaccess-Datei von Website X5.
.htaccess umbenennen
Es wird die Datei .neuerfilename als .htaccess-Datei verwendet.
AccessFileName .neuerfilename
Sicherer Passwortschutz (1 User)
Sehr viele Webserver unterstützen passwortgeschützte Verzeichnisse mit .htaccess. Es werden hier zwei Dateien benötigt:
.htaccess - diese Datei regelt den Zugriff (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 oder hier.
AuthType Basic
AuthName "Passwortschutz"
require valid-user
AuthUserFile /.htpasswd

Inhalt der .htpasswd (x5forum:x5user):
x5forum:$1$mjSn9YSt$Nfb2wTdN2t.LNqhQ5fIR21
Sicherer Passwortschutz (mehrere User)
Wie im Oberen bereits erläutert, haben hier mehrere Benutzer Zugriff und somit auch ein eigenes Passwort.
AuthType Basic
AuthName "Passwortschutz"
require valid-user
AuthUserFile /.htpasswd

Inhalt der Datei .htpasswd:

Username1:$1$mjSn9YSt$Nfb2wTdN2t.LNqhQ5fIR21
Username2:$7$mjrgh8wz4N2t.LNqhQ5fIR21234Ir51
Username3:jg254nfRn9YSt$Nt2bhet.LN_12htfIR21
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 über die IP frei geben
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>
Einzelnen Client aussperren:
Clients (Bots, Websauger, Grabber, usw.) können mittels diesem Befehl ausgesperrt werden.
RewriteEngine on
RewriteCond %HTTP_USER_AGENT ^Client1.*
RewriteRule ^/.* - [forbidden]
Zwei Clients aussperren:
Clients (Bots, Websauger, Grabber, usw.) können mittels diesem Befehl ausgesperrt werden.
RewriteEngine on
RewriteCond %HTTP_USER_AGENT ^Client1.* [OR]
RewriteCond %HTTP_USER_AGENT ^Client2.*
RewriteRule ^/.* - [forbidden]
Drei Clients aussperren:
Clients (Bots, Websauger, Grabber, usw.) können mittels diesem Befehl ausgesperrt werden.
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>
Beispiel einer .htacess-Datei
Dem Bereich redirect sollte besondere Aufmerksamkeit geschenkt werden. Gern helfen wir euch dabei, Rückfragen dazu hier.
# WebSite X5 - Start Code [do not edit]

# WebSite X5 - End Code
##-- $Id: _.htaccess 12989 2020-12-02 11:33:27Z GTB $

##-- Default charset
AddDefaultCharset UTF-8
#AddDefaultCharset ISO-8859-15

##-- Disable the server signature
ServerSignature Off

##-- Turn off ETags in HTTP-header (use both directives)
<IfModule mod_headers.c>
 Header unset ETag
 RequestHeader unset Proxy
</IfModule>
FileETag None

##-- Add Mime Types
<IfModule mod_mime.c>
 AddType application/font-woff2 .woff2
</IfModule>

##-- Enable the compression for any type of content
<IfModule mod_deflate.c>
 <FilesMatch "(\.js|\.css|\.html|\.htm|\.php|\.xml|\.ico|\.jpg|\.jpeg|\.png|\.gif|\.svg|\.woff|\.woff2|\.ttf|\.otf|\.eot|\.JS|\.CSS|\.HTML|\.HTM|\.PHP|\.XML|\.ICO|\.JPG|\.JPEG|\.PNG|\.GIF|\.SVG|\.WOFF|\.WOFF2|\.TTF|\.OTF|\.EOT)$">
   SetOutputFilter DEFLATE
 </FilesMatch>
</IfModule>

##-- Customization of HTTP request and response headers
<IfModule mod_headers.c>
 <FilesMatch "(\.ico|\.jpg|\.jpeg|\.png|\.gif|\.swf|\.flv|\.svg|\.ICO|\.JPG|\.JPEG|\.PNG|\.GIF|\.SWF|\.FLV|\.SVG)$">
   Header set Cache-Control "max-age=2592000, public, must-revalidate"
 </FilesMatch>
 <FilesMatch "(\.woff|\.woff2|\.ttf|\.otf|\.eot|\.WOFF|\.WOFF2|\.TTF|\.OTF|\.EOT)$">
   Header set Cache-Control "max-age=2592000, public, must-revalidate"
 </FilesMatch>
 <FilesMatch "(\.css|\.js|\.CSS|\.JS)$">
   Header set Cache-Control "max-age=604800, private, must-revalidate"
 </FilesMatch>
 <FilesMatch "(\.xml|\.txt|\.XML|\.TXT)$">
   Header set Cache-Control "max-age=604800, public, must-revalidate"
 </FilesMatch>
 <FilesMatch "(\.html|\.htm|\.php|\.HTML|\.HTM|\.PHP)$">
   Header set Cache-Control "max-age=1, private, must-revalidate"
 </FilesMatch>
</IfModule>
##-----------------------------------------
##- SEO Shopstat Modul (Hartmut Koenig)
##-----------------------------------------
<IfModule mod_rewrite.c>
 ##-- Initialize and enable rewrite engine
 ##-- Documentation http://httpd.apache.org/docs/misc/rewriteguide.html
 RewriteEngine On

 ##-- EXAMPLE: If your shop is located at "http://www.yourdomain.com/shop",
 ##-- set the following line like e.g.: RewriteBase /shop/
 RewriteBase /

 ##-- disallow access to dotfiles (.htaccess, .svn, .git, etc.)
 #RedirectMatch 403 /\.
 
 ##-- Use canonical URLs
 ##-- Use SSL-Proxy
 ##-- HostEurope
 #RewriteCond %{HTTP:X-Forwarded-Server} !^ssl\.webpack\.de$ [NC]
 ##-- 1und1
 #RewriteCond %{HTTP:X-Forwarded-Server} !^ssl\.kundenserver\.de$ [NC]
 ##-- domainFACTORY
 #RewriteCond %{HTTP:X-Forwarded-Server} !^sslsites\.de$ [NC]
 ##-- All-Inkl
 #RewriteCond %{HTTP:X-Forwarded-Server} !^ssl-account\.com$ [NC]
 ##-- Strato
 #RewriteCond %{HTTP:X-Forwarded-Server} !^www\.ssl-id\.de$ [NC]
 
 ##-- redirect to http www-domain, when www is missing and no subdomain given and not using an ssl-proxy
 #RewriteCond %{HTTP_HOST} !^www\. [NC]
 #RewriteCond %{HTTP_HOST} !\.(.*)\. [NC]
 #RewriteCond %{HTTP_HOST} !^localhost [NC]
 #RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 ##-- redirect to https www-domain, when www is missing and no subdomain given and not using an ssl-proxy
 #RewriteCond %{HTTP_HOST} !^www\. [NC]
 #RewriteCond %{HTTP_HOST} !\.(.*)\. [NC]
 #RewriteCond %{HTTP_HOST} !^localhost [NC]
 #RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 #RewriteCond %{SERVER_PORT} !^443$
 #RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 ##-- redirect to https non-www-domain, when no subdomain given and not using an ssl-proxy
 #RewriteCond %{SERVER_PORT} !^443$ [OR]
 #RewriteCond %{HTTP_HOST} ^www\. [NC]
 #RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
 #RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

 ##-- Use colon delimiter ":" for SEO-URLS (default setting)
 ##-- Categories (:::)
 RewriteRule ^([\/]?)([a-z]{2})\/(.*):::([_0-9]+):([_0-9]+)\.html$ index.php?cPath=$4&page=$5&language=$2 [QSA,L]
 RewriteRule ^([\/]?)([a-z]{2})\/(.*):::([_0-9]+)\.html$ index.php?cPath=$4&language=$2 [QSA,L]
 RewriteRule :::([_0-9]+):([_0-9]+)\.html$ index.php?cPath=$1&page=$2 [QSA,L]
 RewriteRule :::([_0-9]+)\.html$ index.php?cPath=$1 [QSA,L]

 ##-- language
 RewriteCond %{SCRIPT_FILENAME} !-d
 RewriteCond %{SCRIPT_FILENAME} !-f
 RewriteRule ^([\/]?)([a-z]{2})\/(.*)([^.]*)$ $3?language=$2 [QSA,L]
</IfModule>

» nach oben «
Logo Host Europe
Button Spenden
🏠 © 2009 - 2024
Hosting by
Zurück zum Seiteninhalt