Was ist .htaccess?

.htaccess ist eine Datei, die in einem Verzeichnis gespeichert ist, üblicherweise auf einer Unix- und Linux-Variante des Betriebssystems, die Benutzern oder Gruppen Zugriffsrechte auf dieses Verzeichnis gewährt oder verweigert. Auf einem Unix-ähnlichen Betriebssystem wie Linux sollten diese Datei mit chmod die Berechtigungen auf 640 gesetzt haben. Es sollte sich auch im Stammverzeichnis public_html befinden. Sein Inhalt kann den unten aufgeführten Beispielen ähneln.

Vollständiges .htaccess-Beispiel und Erklärung

Nachfolgend finden Sie eine vollständige Aufschlüsselung aller Hauptsegmente einer .htaccess-Datei. Jedes dieser Segmente kann je nach den Anforderungen Ihres Kontos in Ihre .htaccess-Datei integriert werden.

Notiz

Stellen Sie sicher, dass Sie Ihre Webseite testen, nachdem Sie eine der unten aufgeführten Änderungen vorgenommen haben. Diese Änderungen können Ihre Besucher auf eine Weise einschränken oder umleiten, die Sie möglicherweise nicht erwartet haben.

Tipp

Zeilen, die mit # beginnen, sind Kommentare oder nicht ausführbare Anweisungen. Außerdem verwenden viele der folgenden Beispiele reguläre Ausdrücke, um den Abgleich von Zeichen oder Dateien in der URL-Zeichenfolge zu erleichtern.

Legen Sie die Standardzeicheneinstellung fest

#Set the charset for the pages
AddDefaultCharset UTF-8

Im ersten Beispiel sind die Zeicheneinstellungen jeder Seite auf UTF-8 eingestellt. Obwohl dies in einem Meta-Tag angegeben werden kann, setzen Sie es in .htaccess, wenn Sie die Einstellung auf jedes Dokument anwenden möchten.

Umleitungsübereinstimmungen in URL gefunden

#Redirect M$soft and Hacking attempts
RedirectMatch (.*MSOffice)$ /error.htm
RedirectMatch (.*httpodbc.dll)$ /error.htm
RedirectMatch (.*root.exe)$ /error.htm
RedirectMatch (.*nt)$ /error.htm
RedirectMatch (.*comments.php)$ /error.htm

Im obigen Beispiel leitet RedirectMatch jeden der oben übereinstimmenden Strings auf die Seite error.htm um. Diese Zeilen können auch an ein Skript weitergeleitet werden, um Übereinstimmungen zu protokollieren oder die Benutzer entsprechend weiterzuleiten. In der ersten Zeile gleichen wir ein beliebiges MSOffice am Ende der URL ab und leiten zur error.htm-Seite weiter.

Leiten Sie den Benutzer mit einem 410-Fehler um

#HTTP 410 don't log files don't have
Redirect gone /crossdomain.xml
Redirect gone /labels.rdf

Das nächste Beispiel leitet den Benutzer zu einer 410-Fehlermeldung weiter, was bedeutet, dass die Seite, nach der er sucht, weg ist, niemals zurückkehrt und keine Weiterleitungsadresse hat. Eine 410-Umleitung ist eine großartige Möglichkeit, Anfragen auf Seiten umzuleiten, die sich nicht auf Ihrem Server befinden, aber häufig angefordert werden und 404-Fehler in Ihrem Fehlerprotokoll verursachen.

Benutzerdefinierte Fehlerdokumentseiten

#Error pages
ErrorDocument 400 /error.php?400
ErrorDocument 401 /error.php?401
ErrorDocument 403 /error.php?403
ErrorDocument 404 /error.php?404
ErrorDocument 405 /error.php?405
ErrorDocument 410 /error.php?410
ErrorDocument 500 /error.php?500
ErrorDocument 501 /error.php?501

Im obigen Beispiel werden alle HTTP-Fehler an ein PHP-Skript weitergeleitet, das den Fehler dem Benutzer anzeigt. Das PHP-Skript protokolliert den Fehler auch für den Webmaster. Sehen Sie sich unsere HTTP-Definition für eine vollständige Liste der HTTP-Fehler an, falls Sie mehr als die oben aufgeführten benötigen. Ihre Website benötigt möglicherweise nicht mehr als eine benutzerdefinierte 404-Antwort.

Erstellen Sie eine 301-Weiterleitung

#HTTP 301 redirect computerhope.com to www.computerhope.com
RewriteEngine On
rewritecond %{http_host} ^computerhope.com [NC]
rewriterule ^(.*)$ https://www.computerhope.com/$1 [L,R=301,NC]

Im obigen Beispiel haben wir einen 301 erstellt, der https://computerhope.com auf https://www.computerhope.com umleitet. Die Umleitung verwendet “L, R=301,NC” als Flag. Das „L“ ist die Abkürzung für „zuletzt“. Es weist Apache an, keine Rewrite-Regeln mehr auszuführen. „R=301“ steht für die 301-Umleitung und „NC“ steht für „no case“ und macht diese Regel unabhängig von Groß- und Kleinschreibung. Das Erstellen dieser Art von Weiterleitung verhindert, dass Ihre Webseiten mehrfach in Suchmaschinen gelistet werden, und hält alles konsistent. Wir haben auch die Option hinzugefügt, Symlinks (symbolische Links) zu folgen, um zu verhindern, dass Fehler auftreten, wenn eine Datei oder ein Verzeichnis verlinkt ist und es sich nicht um eine tatsächliche Datei oder ein Verzeichnis handelt.

RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,L]

Das obige Beispiel ist ein weiteres Beispiel dafür, wie man eine 301-Direktnachricht erstellt. In diesem Beispiel leiten wir jede www-Adresse an eine Nicht-www-Adresse weiter. Wenn also https://www.computerhope.com implementiert würde, würde es zu https://computerhope.com werden. In diesem Beispiel haben wir auch das Platzhalterzeichen .* als Domäne hinzugefügt, anstatt computerhope.com anzugeben.

Sichere .htaccess-Datei

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

In diesem nächsten Beispiel wird eine Regel erstellt, die verhindert, dass jemand Ihre .htaccess-Datei und die dort aufgeführten Regeln anzeigen kann. Diese zusätzlichen Zeilen können der .htaccess-Datei zusätzlichen Schutz hinzufügen.

Deaktivieren Sie die Verzeichnisindizierung

# disable directory browsing
Options All -Indexes

Im obigen Beispiel würde diese Sicherheitsregel verhindern, dass jemand Verzeichnisse auf Ihrem Server durchsucht. Wenn Sie beispielsweise ein Verzeichnis namens /files haben, das keine index.html-Datei enthält, werden die Dateien dieses Verzeichnisses jedem angezeigt. Wenn dieses Verzeichnis vertrauliche Dateien (z. B. Passwörter) enthält, kann die Person, die diesen Ordner durchsucht, alle Dateien in diesem Verzeichnis anzeigen oder speichern, was ein Sicherheitsrisiko darstellt.

Lassen Sie HTML-Dateien als SSI-Dateien fungieren

#Allow files with chmod +x to be SSI files
xBitHack on

Durch Einschalten von xBitHack können Sie zulassen, dass jede HTML-Datei mit Ausführungsberechtigungen, zB chmod +x, als SSI-Datei behandelt wird. Diese Ergänzung ist nützlich für alle, die eine Webseite als statische HTML-Dateien ausführen und eine oder mehrere ihrer HTML-Webseiten über SSI verfügen müssen.

Website-Caching aktivieren

# Month cache
<FilesMatch ".(gif|jpg|jpeg|pdf|png|ico)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# Week cache
<FilesMatch ".(js|css|ch|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Day cache
<FilesMatch ".(html|htm)$">
Header set Cache-Control "max-age=86400"
</FilesMatch>

Im obigen Beispiel wird Caching eingerichtet, um die Ladegeschwindigkeit Ihrer Seiten zu verbessern und die Nachfrage auf Ihrem Server zu verringern. Im obigen ersten Beispiel sind Bilddateien und andere Dateien auf ein maximales Alter von einem Monat festgelegt. Wenn der Besucher eine Datei anfordert, die er bereits einmal angesehen hat, werden alle zukünftigen Anfragen für einen Monat von seinem Computer und nicht vom Server geladen. Als Nächstes werden Dateien wie JavaScript-Dateien und CSS-Dateien auf eine maximale Altersgrenze von einer Woche festgelegt. Abschließend werden die HTML-Dateien auf ein Tageslimit gesetzt. Diese können alle angepasst werden, je nachdem, wie oft Sie diese Dateitypen aktualisieren.

Tipp

Das Alter wird in Sekunden dargestellt. Ein Tag hat 86.400 Sekunden.

Besucher basierend auf USER_AGENT ablehnen

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]

Es gibt mehrere Tools und Dienste, die Ihre Website indizieren, indem sie nach E-Mail-Adressen suchen oder Ihre komplette Seite kopieren. Bei unsachgemäßer Verwendung sind diese Dienste eine Belastung für Ihren Server und können auch böswillig verwendet werden. Wenn Sie diese Benutzeragenten in Ihren Besucherprotokollen bemerken, kann dies mit einem ähnlichen Befehl wie dem obigen verhindert werden.

Verweigern Sie Besucher basierend auf der IP-Adresse

Order Allow,Deny
Deny from 178.239.58.144
Allow from all

Im obigen Beispiel verweigern diese Zeilen einer IP-Adresse den Zugriff auf Ihre Seiten. Das Sperren einer IP mit dieser Methode hilft, jeden von dieser IP daran zu hindern, etwas mit Ihrer Website zu tun.

Erstellen eines passwortgeschützten Verzeichnisses

AuthUserFile /home/directory/.passfile
AuthGroupFile /dev/null
AuthName Access For Valid Users
AuthType Basic
<Limit GET>
require valid-user
</Limit >

Die AuthUserFile enthält Ihre Benutzer und Passwörter, denen Sie Zugriff auf das Verzeichnis gewähren möchten, in dem die Dateien gespeichert sind.

Um eine Passfile zu erstellen, geben Sie an der Eingabeaufforderung den folgenden Befehl ein.

htpasswd -c . passfile username

Nach Eingabe des obigen Befehls erscheint eine Aufforderung zur Eingabe des Passworts für den Benutzernamen.

The passfile should also be set to 640 permissions.
Notiz

Die obigen Beispiele und Informationen gelten möglicherweise nicht für alle Systeme oder Setups. Wenn Sie sich also nicht sicher sind, ob Ihr ISP (Internet Service Provider) oder Webhoster die Erstellung von Rechten mit htaccess unterstützt, wenden Sie sich an ihn, wenn Sie eine Website nicht mit einem Passwort schützen können.

gzip, .htpasswd, SEO-Begriffe, Webdesign-Begriffe

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here