Hostwinds Tutorials
Suchergebnisse für:
Inhaltsverzeichnis
Die .htaccess-Datei ist eine Konfigurationsdatei, die hauptsächlich von Apache-Webservern verwendet wird, um verschiedene Aspekte des Website-Verhaltens pro Direktorie zu steuern.Sie können die serverweiten Einstellungen überschreiben und bestimmte Konfigurationen auf einzelne Verzeichnisse anwenden, ohne die Hauptdatei der Hauptserverkonfiguration direkt zu ändern.
Die .htaccess -Datei zeichnet sich als bemerkenswert leistungsfähiges Tool bei der effizienten Verwaltung verschiedener Backend -Website -Aufgaben aus.Eine der häufigsten Aufgaben ist die Umsetzung von Weiterleitungen, wo Sie können Weiterleitungen auf der Ebene einzelner URLs, in ganzen Domänen und sogar auf der HTTP -Protokollebene ausführen.
In diesem Tutorial werden wir die unzähligen Optionen durchgehen .Htaccess Angebote für die Umleitung und führen Sie durch die verschiedenen Implementierungen, damit Sie Ihre URLs effektiv umgeben können.
Das Aktivieren der .htaccess -Datei fordert Apache -Webserver an, in der sie geschriebenen Anweisungen zu erkennen und zu akzeptieren, wodurch Sie auf die Verzeichnisebene auf die Standard -Serverkonfigurationen eingerichtet sind.
Wenn Sie eine haben Shared Hosting Konto, Ihr Hosting -Dienstanbieter sollte es bereits aktivieren lassen. Sie müssen also lediglich eine Datei erstellen.
Verwenden Sie Ihren bevorzugten Texteditor (wir werden verwenden Nano Für dieses Beispiel) öffnen Sie die Konfigurationsdatei Ihrer Website mit dem folgenden Befehl:
Für Red Hat-basierte Systeme (CentOS, Fedora, Rhel):
sudo nano /etc/httpd/conf/httpd.conf
Für Debian-basierte Systeme (Debian, Ubuntu, Linux Mint):
sudo nano /etc/apache2/sites-available/domain_name.conf
Der VirtualHost -Dateiblock sieht ungefähr so aus:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName domain_name
ServerAlias www.domain_name
DocumentRoot /var/www/domain_name/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Hinweis: Abhängig davon, wie Ihre Website -Dateien organisiert sind, die 'Dokument Root' könnte abweichen.Es gibt zwei allgemeine Setups:
/var/www/domain_name/
├── public_html/
│ ├── index.html
│ ├── about.html
│ └── .htaccess
└── logs/
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess
Obwohl beide gültig sind, ist es wichtig, sich darüber im Klaren zu sein, welche Site -Dateien Sie möglicherweise von der .htaccess -Datei betroffen sein oder nicht.
Innerhalb der Virtualhost Block fügen Sie den folgenden Verzeichnis -Inhaltsblock hinzu:
<VirtualHost *:80>
<Directory /var/www/domain_name/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Diese Richtlinie speziell 'ALLE ALLE'ist das, was Sie ermöglicht, .htaccess -Direktiven über alle Website -Dateien innerhalb des angegebenen Verzeichnisses zu wenden.
Speichern und schließen Sie die Datei nach dem Hinzufügen des Verzeichnisblocks.In Nano kann dies durch Drücken erfolgen Strg +x, dann Y. und drücken EINGEBEN.
Für die vollständige Aktivierung der .htaccess -Datei müssen Sie Apache neu starten:
Für Red Hat-basierte Systeme (CentOS, Fedora, Rhel):
sudo systemct1 restart httpd
Für Debian-basierte Systeme (Debian, Ubuntu, Linux Mint):
sudo systemct1 restart apache2
Das ist es!Mit Apache können Sie jetzt .htaccess -Dateien innerhalb des angegebenen Verzeichnisses verwenden.
Mit Unterstützung für .htaccess aktiviert können wir jetzt die .htaccess -Datei erstellen.
Um die .htaccess -Datei zu erstellen, müssen Sie zur Wurzelverzeichnis wo Sie die .htaccess -Datei aktiviert haben.Mit Ihrem bevorzugten Texteditor (erneut werden wir Nano verwenden) geben Sie den folgenden Befehl ein und ersetzen Sie 'Domain_name'Mit deinem Domainnamen.
Hinweis: Entfernen 'public_html»Wenn Sie die .htaccess -Datei in diesem Unterverzeichnis nicht aktiviert haben.
sudo nano /var/www/html/domain_name/public_html/.htaccess
Sie haben jetzt eine .htaccess -Datei erstellt und können mit der Ausführung von Umleitungsrichtlinien beginnen.
Das 'Umleiten'Die Richtlinie ist die einfachste Option für einfache 1-zu-1-Weiterleitungen.Diese Anweisung kann verwendet werden, um URLs auf derselben Domäne oder in einer anderen Domäne umzuleiten.Die folgenden Richtlinien funktionieren für alle 3xx -Statuscodes (301, 302, 307 und 308)
Redirect 301 "/original_url_path" "/new_url_path"
Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"
Die 'UmkreistenMit 'Richtlinie können Sie zusätzliche Regeln für Umleitungen, z. B. das Musteranpassung, durch die Verwendung regelmäßiger Ausdrücke und Bedingungen hinzufügen.
Um das "Rewriterule" zu verwenden, müssen wir sicherstellen, dass das Modul "mod_rewrite" aktiviert ist.
httpd -M | grep rewrite
apache2ctl -M | grep rewrite
Wenn Sie die folgende Ausgabe sehen, ist das Modul 'mod_rewrite' aktiviert
rewrite_module (shared)
Schritt 1: Öffnen Sie die Apache -Konfigurationsdatei (normalerweise 'httpd.conf' oder 'apache2.conf').
sudo nano /etc/httpd/conf/httpd.conf
Schritt 2: Stellen Sie sicher, dass die folgende Zeile nicht kommentiert wird (Nein # zu Beginn).Wenn ja, löschen Sie einfach '#'
LoadModule rewrite_module modules/mod_rewrite.so
Schritt 3: Starten Sie Apache neu, um Änderungen anzuwenden
sudo systemctl restart httpd
Schritt 1: Aktivieren Sie das Modul "mod_rewrite"
sudo a2enmod rewrite
Schritt 2: Starten Sie Apache neu, um Änderungen anzuwenden
sudo systemctl restart apache2
Wenn Sie ein gemeinsames Muster in Ihren alten URLs haben, wie das gleiche Unterverzeichnis (z. B. /Blog), können Sie regelmäßige Ausdrücke verwenden, um sie zu entsprechen und umzuleiten:
RewriteEngine On
RewriteRule ^old-section/(.*)$ http://www.example.com/new-section/$1 [R=301,L]
In diesem Beispiel jede URL, die mit beginnt 'alter Sektion/' wird umgeleitet auf 'Neuer Abschnitt/' mit dem gleichen Suffix.
Die folgende Richtlinie wird den gesamten Verkehr von 'umleiten.old-domain.com' Zu 'new-domain.com, 'Erhalt des URI -Pfades.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
Wenn Sie HTTPS "erzwingen", bedeutet dies, dass Sie alle eingehenden HTTP -Anfragen Ihrer Website in die gesicherte HTTPS -Version umleiten.
Es gibt einige Möglichkeiten, HTTPS mithilfe der Anweisung "Rewriterule" zu erzwingen:
Wenn Sie HTTPS auf "All -Traffic" erzwingen, fordern Sie dem Server auf, jede eingehende HTTP -Anfrage an HTTPS umzuleiten, unabhängig von der Domäne oder Subdomain.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Diese Methode von erzwungenem HTTPS ist ideal für Server, die eine einzelne Domäne hosten.
Wenn Sie HTTPS in einer bestimmten Domäne erzwingen, fordern Sie dem Server auf, HTTP -Anforderungen nur für diese bestimmte Domäne (oder Subdomain) an HTTPS umzuleiten.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?specific-domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Das Erzwingen von HTTPS mit dieser Methode ist besonders nützlich, wenn Sie mehrere Domänen auf einem einzelnen Server hosten und Sie nur eine ausgewählte Nummer sichern müssen.
Sie können die .htaccess -Datei auch in Verbindung mit der Anweisung "Rewriterule" verwenden, um das Präfix "www" umzuleiten.
Hinzufügen von 'www' Präfix:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
Zum Entfernen von 'www' Präfix:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Geschrieben von Hostwinds Team / Juni 3, 2024