Wissensbasis Einfache Anweisungen zur Arbeit mit dem Profitserver-Dienst
Main Wissensbasis Konfigurieren der .htaccess-Datei

Konfigurieren der .htaccess-Datei


In diesem Artikel erläutern wir die Grundlagen der .htaccess-Datei, die für die SEO-Optimierung entscheidend ist. Sie gewährleistet die korrekte Indexierung von Seiten durch Suchmaschinen. Wir lernen, wie Sie Weiterleitungen verwalten, die Sicherheit konfigurieren und die Leistung steigern. Außerdem geben wir Tipps zur eigenständigen Konfiguration dieser Datei.

Warum .htaccess benötigt wird

Die .htaccess-Datei fungiert als eine Art „Fernbedienung“ für Webentwickler auf Apache-Servern. Sie bietet praktische Tools zum Anpassen verschiedener Parameter und zur Verwaltung des Website-Verhaltens. Wenn kein direkter Zugriff auf die wichtigsten Konfigurationsdateien des Servers möglich ist (wie dies beispielsweise bei virtuellem Hosting häufig der Fall ist), ist die .htaccess-Datei ein nützliches Tool, um notwendige Änderungen vorzunehmen.

Htaccess befindet sich oft im Stammordner Ihrer Website oder in den Ordnern, in denen eine spezielle Konfiguration erforderlich ist. Wenn Sie beispielsweise WordPress verwenden, kann die Konfiguration über das Yoast SEO-Plugin erfolgen, das wir im Artikel über Konfigurieren von robots.txtIn anderen Fällen reicht es aus, in den gewünschten Ordner zu gehen und die vorhandene .htaccess-Datei zu bearbeiten oder eine zu erstellen, falls sie noch nicht erstellt wurde.

Konfigurieren der .htaccess-Datei

301-Weiterleitung htaccess

Eine 301-Weiterleitung in der .htaccess-Datei ist vergleichbar mit einer permanenten Weiterleitung auf einer Website. Sie informiert Suchmaschinen und Browser darüber, dass die Seite nun dauerhaft unter einer neuen Adresse zu finden ist, und schlägt vor, Lesezeichen und Indexierung zu aktualisieren. Eine solche Weiterleitung wird typischerweise verwendet, wenn eine Seite verschoben oder gelöscht wird, um ihr Ranking in den Suchergebnissen zu erhalten und Besucher an die neue Adresse umzuleiten.

Um Weiterleitungen zu aktivieren, müssen Sie den entsprechenden Befehl in der .htaccess-Datei aktivieren:

RewriteEngine on

Anschließend können Sie die einfachste Form der Weiterleitung konfigurieren:

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>

Eine ähnliche Weiterleitung mit dem Permanente Umleitung Die Direktive sieht folgendermaßen aus:

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>

Dies sind die am einfachsten zu konfigurierenden Umleitungsmethoden. Betrachten wir eine Konfiguration, die andere, komplexere Umleitungsarten mit dem mod_rewrite Modul:

<IfModule mod_rewrite.c>
RewriteEngine On
    
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]

# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
    
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>

Eine 302-Weiterleitung in der .htaccess, die auf eine temporäre Umleitung hinweist, kommt deutlich seltener vor. Hier ist ein Beispiel für eine solche Einstellung:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>

Richtlinie ErrorDocument

Mit dieser Einstellung können Sie steuern, was dem Benutzer bei HTTP-Fehlern auf Ihrer Website angezeigt wird. Anstelle der Standardfehlermeldung können Sie eine eigene Seite anzeigen, die für den Besucher informativer ist und ihm hilft, den Fehler zu verstehen. Beachten Sie dazu einfach diese Syntax:

ErrorDocument <error_code> <URL_page>

Zum Beispiel,

ErrorDocument 404 /errors/not_found.html

Bedeutet, dass wenn ein 404 Fehler auftritt, wird die Seite unter /Fehler/nicht_gefunden.html wird geöffnet. Absolute URLs werden ähnlich angegeben:

ErrorDocument 500 http://example.com/errors/server_error.html

Dieses Beispiel zeigt die Anzeige der server_error.html Seite an http://example.com/errors/ im Falle von a 500 Fehler.

Zugriff auf ein Site-Verzeichnis verweigern

Die .htaccess-Datei hat den Befehl Verweigern von allen, mit dem Sie den Zugriff auf bestimmte Ordner oder Dateien auf Ihrem Webserver verweigern können. Dies kann nützlich sein, wenn Sie private Informationen oder wichtige Dateien vor Website-Besuchern verbergen möchten, um die Datensicherheit zu gewährleisten.

Um die Auflistung (Anzeige aller verfügbaren Verzeichnisse) zu deaktivieren, müssen Sie die folgende Zeile hinzufügen:

Options -Indexes

Ein Beispiel für die Sperrung des Zugriffs auf ein bestimmtes Verzeichnis sieht folgendermaßen aus:

<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>

Ebenso können Sie den Zugriff auf eine einzelne Datei verweigern:

<Files "file.php">
Order Deny,Allow
Deny from all
</Files>

Oder für einen Dateibereich nach Erweiterung:

<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>

Blockieren des Zugriffs per IP

Durch die Sperrung des Zugriffs per IP in der .htaccess-Datei können Sie den Zugriff auf Ihre Website für bestimmte IP-Adressen oder deren Gruppen einschränken. Dies kann nützlich sein, wenn Sie den Zugriff auf Ihre Website oder bestimmte Teile davon für bestimmte Personen oder unerwünschte Bots verhindern möchten.

Das Blockieren einer einzelnen IP-Adresse erfolgt mit dem folgenden Befehl:

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

Das Blockieren mehrerer IP-Adressen erfolgt auf ähnliche Weise durch die Duplizierung des "Deny" Zeile mit den erforderlichen Adressen.

So blockieren Sie einen Bereich von IP-Adressen:

Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24

Um den Zugriff nur für bestimmte IPs zuzulassen, fügen Sie den Code hinzu:

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

Um den Zugriff vollständig zu verweigern, verwenden Sie die Anweisung Verweigern von allenund zum Blockieren von Adressen nach Maske geben Sie an Deny 11.22.

Woher, 11.22 ist die IP-Adresse Maske".

Blockieren von Besuchern durch User-Agent

Das Blockieren von Benutzern durch den User-Agent in der .htaccess-Datei ist eine Methode, um basierend auf Informationen über den vom Besucher verwendeten Browser zu steuern, wer auf Ihren Webserver zugreifen kann. Die User-Agent-Zeichenfolge enthält Daten über den Browser, mit dem eine Person mit Ihrem Server interagiert. Dank dieser Informationen können Sie den Zugriff für bestimmte Benutzer einschränken.

Die häufigste Methode zum Blockieren durch User-Agent ist die Verwendung mod_rewrite:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>

In diesem Beispiel:

  1. RewriteCond %{HTTP_USER_AGENT} wird verwendet, um die User-Agent-Zeichenfolge zu überprüfen.
  2. ^Bot1, ^Bot2 und ^Bot3 sind Beispiele für User-Agent-Zeichenfolgen, die wir blockieren möchten. Die NC-Modifikatoren geben an, dass beim Vergleich die Groß-/Kleinschreibung nicht berücksichtigt werden soll.
  3. RewriteRule ^.*$ - [F,L] wird auf die Anfrage angewendet, wenn eine der RewriteCond-Bedingungen erfüllt ist. Es sendet eine Antwort mit dem Statuscode 403 Forbidden (F) und stoppt die Verarbeitung der Regeln (L).

Caching in htaccess

Das Konfigurieren des Cachings über die .htaccess-Datei trägt dazu bei, Ihre Website zu beschleunigen, indem es sie für Benutzer schneller lädt. Das funktioniert so: Bestimmte Dateien wie Bilder, CSS-Stile und JavaScript-Skripte werden nach dem ersten Laden im Browser-Cache des Benutzers gespeichert. Der Browser kann diese Dateien nun aus dem Cache verwenden, anstatt sie bei jedem Seitenaufruf neu vom Server laden zu müssen. Dies verkürzt die Ladezeit und verbessert die Website-Performance.

Betrachten Sie ein Beispiel:

# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>

# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

Bei Ressourcen, die häufig aktualisiert werden, ist es hingegen notwendig, das Caching zu deaktivieren:

# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>

Optimierung der Site-Leistung

Die mod_deflate mit einem mod_gzip Module in Apache helfen dabei, Informationen zu komprimieren, die der Server an die Geräte der Benutzer sendet. Dadurch werden die Dateien kleiner, was wiederum das Laden der Seite beschleunigt. Beachten Sie jedoch, dass die Unterstützung und Konfiguration dieser Module je nach Server variieren kann.

Beispiel für die Verwendung des mod_deflate Modul:

<IfModule mod_deflate.c>
# Compressing text file types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

Beispiel für mod_gzip:

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>

Wir haben die am häufigsten verwendeten Anweisungen besprochen. Sie können sich mit allen Funktionen der Datei im Abschnitt offizielle Dokumentation.

So überprüfen Sie die Funktionalität der .htaccess-Datei

Um zu überprüfen, ob Ihre .htaccess-Datei auf der Site funktioniert, können Sie die folgenden Schritte ausführen:

  1. Ändert absichtlich die .htaccess-Datei mit einem Fehler. Der Server sollte daraufhin einen Fehler ausgeben. Diese Methode zeigt an, ob die Dateioperation generell auf dem Server ausgeführt wird.
  2. Überprüfen Sie die Funktionalität der von Ihnen vorgenommenen Änderungen. Nehmen Sie beispielsweise eine geringfügige Anpassung an einem der Parameter vor und bewerten Sie das Vorhandensein von Änderungen.
  3. Überprüfen Sie den Statuscode der Seite, wenn die Änderungen mit der Antwort des Servers zusammenhängen. Wie das geht, haben wir zuvor im Artikel beschrieben HTTP-Fehlercodes: eine vollständige Liste der Serverfehler.
  4. Sehen Sie sich die Serverprotokolle an. Sie zeigen alle Fehler im Zusammenhang mit der Ausführung der .htaccess-Datei an.
  5. Führen Sie Tests mithilfe von Onlinediensten oder -tools durch.

Es ist wichtig zu verstehen, dass Sie nicht alle Schritte auf einmal ausführen müssen, um die Funktionalität der .htaccess-Datei zu überprüfen. Wählen Sie einfach die am besten geeignete Methode aus der Liste aus und verwenden Sie sie.

Fazit

Die Konfiguration der .htaccess-Datei ist ein wichtiger Schritt zur Optimierung und zum Schutz Ihres Apache-Servers. Wir haben untersucht, wie diese Datei Weiterleitungen verwaltet, Inhalte komprimiert und die Sicherheit gewährleistet. Sobald Sie die Arbeit mit .htaccess beherrschen, steht Ihnen ein leistungsstarkes Tool zur Verbesserung der Leistung und Funktionalität von Websites zur Verfügung.

❮ Vorheriger Artikel FTP-Server-Setup
Nächster Artikel ❯ So konfigurieren Sie einen Webserver (Apache-PHP-MySQL/MariaDB) unter Linux

Fragen Sie uns nach VPS

Wir stehen Ihnen jederzeit und rund um die Uhr für Ihre Fragen zur Verfügung.