Hatten Sie jemals das Bedürfnis, die Konfiguration Ihrer Website zu ändern, die auf einem Apache-Webserver ausgeführt wird, ohne Root-Zugriff auf die Serverkonfigurationsdateien zu haben (httpd.conf
)? Das ist die .htaccess
Datei ist für.
Die .htaccess
-Datei bietet eine Möglichkeit, Konfigurationsänderungen an Ihrer Website pro Verzeichnis vorzunehmen. Die Datei wird in einem bestimmten Verzeichnis erstellt, das eine oder mehrere Konfigurationsanweisungen enthält, die auf dieses Verzeichnis und seine Unterverzeichnisse angewendet werden. Beim Shared Hosting müssen Sie einen .htaccess
verwenden Datei, um Konfigurationsänderungen an Ihrem Server vorzunehmen.
[Das könnte Ihnen auch gefallen: 6 Sysadmin-Skills, die Webentwickler brauchen]
Häufige Verwendung von .htaccess-Dateien
Die .htaccess
Datei hat mehrere Anwendungsfälle. Die häufigsten Beispiele sind:
- Weiterleitungen für bestimmte URLs
- Lade benutzerdefinierte Fehlerseiten wie 404-Seiten
- Zwingen Sie Ihre Website zu HTTPS statt HTTP
- Gestatten oder verweigern Sie bestimmten IP-Adressen den Zugriff auf Ihre Website
- Schützen Sie bestimmte Verzeichnisse auf Ihrem Server mit einem Passwort
Wann sollte .htaccess nicht verwendet werden?
Die .htaccess
Datei wird häufig verwendet, wenn Sie keinen Zugriff auf die Hauptserver-Konfigurationsdatei httpd.conf
haben oder Konfiguration virtueller Hosts, was nur passiert, wenn Sie Shared Hosting erworben haben. Sie können alle oben genannten Anwendungsfälle erreichen, indem Sie die Hauptkonfigurationsdatei(en) des Servers (z. B. httpd.conf
) bearbeiten ) oder Konfigurationsdateien für virtuelle Hosts, daher sollten Sie .htaccess
nicht verwenden wenn Sie Zugriff auf diese Dateien haben. Jede Konfiguration, die Sie in eine .htaccess
einfügen müssen Datei kann genauso effektiv in einem
Gründe, die Verwendung von .htaccess zu vermeiden
Es gibt zwei Gründe, die Verwendung von .htaccess
zu vermeiden Dateien. Schauen wir sie uns genauer an.
Zuerst :Leistung – Wenn AllowOverride ist so eingestellt, dass die Verwendung von .htaccess
erlaubt ist Dateien, httpd
sucht nach .htaccess
Dateien in jedem Verzeichnis, beginnend mit dem übergeordneten Verzeichnis. Dies führt zu Leistungseinbußen, unabhängig davon, ob Sie es verwenden oder nicht. Die .htaccess
Datei wird jedes Mal geladen, wenn ein Dokument aus einem Verzeichnis angefordert wird.
Um einen vollständigen Überblick über die anzuwendenden Anweisungen zu erhalten, httpd
sucht immer nach .htaccess
Dateien, beginnend mit dem übergeordneten Verzeichnis, bis es das Ziel-Unterverzeichnis erreicht. Wenn eine Datei aus dem Verzeichnis /public_html/test_web/content
angefordert wird , httpd
muss nach folgenden Dateien suchen:
/.htaccess
/public_html/.htaccess
/public_html/test_web/.htaccess
/public_html/test_web/content/.htaccess
Daher wurden vier Dateisystemzugriffe für jeden Dateizugriff aus einem Unterverzeichnisinhalt durchgeführt, selbst wenn die Datei nicht vorhanden ist.
Zweiter :Sicherheit - Benutzern die Berechtigung erteilen, Änderungen in .htaccess
vorzunehmen Dateien gibt ihnen die volle Kontrolle über die Serverkonfiguration dieser bestimmten Website oder dieses virtuellen Hosts. Jede Direktive in der .htaccess
Datei hat die gleiche Wirkung wie jede in httpd
platzierte Konfigurationsdatei selbst, und an dieser Datei vorgenommene Änderungen sind sofort aktiv, ohne dass der Server neu gestartet werden muss. Dies kann im Hinblick auf die Sicherheit eines Webservers und einer Website riskant werden.
Aktivieren Sie die .htaccess-Datei
Um die .htaccess
zu aktivieren Datei benötigen Sie sudo/root-Rechte auf dem Server.
Öffnen Sie den httpd
Konfigurationsdatei Ihrer Website:
/etc/httpd/conf/test.conf
Sie sollten die folgende Konfigurationsdirektive in der virtuellen Hostdatei des Servers hinzufügen, um .htaccess
zuzulassen Datei im DocumentRoot Verzeichnis. Wenn die folgenden Zeilen nicht hinzugefügt werden, wird die .htaccess
Datei funktioniert nicht:
</VirtualHost>
<Directory /var/www/test.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Beim Shared Hosting ist dies bereits von den Hosting-Dienstleistern erlaubt. Sie müssen lediglich eine .htaccess
erstellen Datei in public_html
Verzeichnis, auf das Ihnen der Dienstanbieter Zugriff gewährt hat und in das Sie Ihre Website-Dateien hochladen werden.
Weiterleitungs-URLs
Wenn Ihr Ziel darin besteht, einfach eine URL auf eine andere umzuleiten, wird die Redirect Direktive ist die beste Option, die Sie verwenden können. Immer wenn eine Anfrage von einem Client auf einer alten URL kommt, leitet er sie an eine neue URL an einem neuen Standort weiter.
Wenn Sie eine vollständige Umleitung auf eine andere Domain durchführen möchten, können Sie Folgendes festlegen:
# Redirect to a different domain
Redirect 301 "/service" "https://newdomain.com/service"
Wenn Sie nur eine alte URL auf eine neue URL auf demselben Host umleiten möchten:
# Redirect to a URL on the same domain or host
Redirect 301 "/old_url.html" "/new_url.html"
Load a custom 404 Error page
Laden Sie für eine bessere Benutzererfahrung eine benutzerdefinierte Fehlerseite, wenn einer der Links auf Ihrer Website auf die falsche Stelle verweist oder das Dokument gelöscht wurde.
Um eine benutzerdefinierte 404-Seite zu erstellen, erstellen Sie einfach eine Webseite, die als 404-Seite funktioniert, und fügen Sie dann den folgenden Code zu Ihrer .htaccess
hinzu Datei:
ErrorDocument 404 /error/pagenotfound.html
Sie sollten /error/pagenotfound.html
ändern zum Speicherort Ihrer 404-Seite.
Erzwingen Sie die Verwendung von HTTPS anstelle von HTTP für Ihre Website
Wenn Sie Ihre Website dazu zwingen möchten, HTTPS zu verwenden, müssen Sie die RewriteEngine verwenden Modul in der .htaccess
Datei. Zunächst müssen Sie die RewriteEngine einschalten Modul in der .htaccess
Datei und geben Sie dann die Bedingungen an, die Sie überprüfen möchten. Wenn diese Bedingungen erfüllt sind, wenden Sie Regeln auf diese Bedingungen an.
Das folgende Code-Snippet schreibt alle Anforderungen an HTTPS um:
# Turn on the rewrite engine
RewriteEngine On
# Force HTTPS and WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.test-website.com/$1 [R=301,L]
Lassen Sie uns jede Zeile durchgehen.
RewriteEngine ein schaltet die RewriteEngine ein Modul. Dies ist erforderlich; andernfalls funktionieren Bedingungen und Regeln nicht.
Die erste Bedingung prüft, ob www
eingegeben wird. [ODER, NC] steht für kein Fall , also auch wenn die eingegebene URL eine Mischung aus Groß- und Kleinbuchstaben ist.
Als nächstes prüft es, ob das HTTPS-Protokoll bereits vom Benutzer eingegeben wurde. %{https} Rabatt bedeutet, dass das HTTPS-Protokoll nicht verwendet wurde.
Wenn die RewriteCond zufrieden ist, verwenden wir RewriteRule um die URL auf HTTPS umzuleiten. Beachten Sie, dass in diesem Fall alle URLs bei jeder Anfrage zu HTTPS umgeleitet werden.
[ Ein kostenloser Leitfaden von Red Hat:5 Schritte zur Automatisierung Ihres Unternehmens. ]
Abschluss
Websitebesitzer verwenden häufig den .htaccess
Datei, um das Verhalten ihrer Website zu steuern. In diesem Artikel haben wir die Grundlagen der .htaccess
behandelt Datei und einige gängige Anwendungsfälle, die auf den meisten Websites vorhanden sind.