Weiterleiten .htaccess: Weiterleiten zu einer anderen Domain und Weiterleiten zu einer anderen Seite

  1. Redirect .htaccess: Permanente Umleitung, 301
  2. So richten Sie eine Weiterleitung zu www (oder ohne www) ein
  3. So erstellen Sie .htaccess
  4. Die .htaccess-Datei funktioniert nicht
  5. Gibt es ein Analogon von .htaccess in Nginx?
  6. Herausgeber
  7. x64 (auch bekannt als andi)

Guten Sonntag!

Sehr häufig finden Sie in den Foren Fragen zu .htaccess - der Konfigurationsdatei des Apache-Webservers. Der Hauptstolperstein ist, dass die Entwicklung keine Aufgabe der bequemen Konfiguration für den Endbenutzer hatte (die Distribution enthält keine Shell für visuelle Installationen unter Verwendung von Kontrollkästchen, Dropdown-Listen usw.), aber Serveradministratoren meistern diese Aufgabe bemerkenswert, da sie mit "Mana" zufrieden sind. (vom Linux-Team - man - ein kurzes Tutorial von Entwicklern oder in diesem Fall von Profis zu Profis).

In den meisten Fällen sind einfache Manipulationen erforderlich: bedingungslose Weiterleitung an eine andere Site oder Weiterleitung von einem Ort an einen anderen (z. B. wenn sich die URL des Abschnitts geändert hat). Und jeder beginnt zu glauben, dass es definitiv kein Problem gibt, und es ist sogar nutzlos, im Internet nach einer Lösung zu suchen und im Forum zu suchen. Mal sehen, was diese Probleme wirklich nicht sind.

Mal sehen, was diese Probleme wirklich nicht sind

Redirect .htaccess: Permanente Umleitung, 301

Dieses Ding hat verschiedene Namen. Neponyatki kann vielleicht diese Zahl verursachen - warum ist 301? Die Essenz liegt im HTTP-Protokoll selbst, das auf Client-Anfragen mit einem bestimmten Statuscode antwortet. Der Code 404 Not Found ist fast jedem bekannt. Der 200-OK- Code ist fast unbekannt, bedeutet aber, dass alles in Ordnung ist und das Dokument im Browser angezeigt wird. Der Code 301 dauerhaft verschoben bedeutet jedoch, dass das Dokument endgültig an eine neue Adresse verschoben wurde. Dies wird häufig als Umleitung bezeichnet, obwohl der gesamte Antwortpool als - 3xx: Umleitung bezeichnet wird .

Apache bietet mehrere Optionen für Weiterleitungen. Das Modul mod_rewrite bietet einen hervorragenden Mechanismus für die Arbeit mit Weiterleitungen. In Zukunft werde ich es in den Beispielen verwenden. Das Modul mod_alias enthält außerdem Anweisungen für Weiterleitungen von einer bestimmten Adresse oder von einer Adresse, die dem regulären Ausdruck entspricht:
Weiterleiten permanent / http://newsite.ru/
RedirectMatch permanent. * Http://newsite.ru/
Mod_rewrite verfügt jedoch über zusätzliche Umleitungsoptionen. Daher ist es am besten, es zu verwenden (IMHO).

Im Allgemeinen können Sie für eine bedingungslose externe Umleitung (nennen wir sie Benutzer), bei der der Browser automatisch zu einer anderen Seite umleitet, die normalerweise für den Benutzer nicht erkennbar ist (die Adressleiste ändert sich), diesen Code in .htaccess eingeben:
RewriteEngine On
RewriteRule. * Http://newsite.ru/ [L, R = permanent]
Hier enthält die erste Zeile den Mechanismus des Mod_rewrite- Moduls, der mit den Adressen alles machen darf. Nennen wir diese URL-Konvertierung "on the fly". Die zweite Zeile definiert direkt die Regel für die Konvertierung, im obigen Beispiel werden alle Anfragen an http://newsite.ru/ umgeleitet. Flags werden in eckige Klammern gesetzt: L - Letzte (Letzte) Regel, R - Umleitungstyp (Umleitung), angegeben als R = Code, wobei Code eine alphabetische oder numerische Bezeichnung ist (permanent oder 302).

In der Tat ist mod_rewrite eine sehr nützliche Sache, da aus diesem Grund viele Motoren aktiv die sogenannte CNC (Human URL Understandable) verwenden. Wenn Sie mit diesem Begriff nicht vertraut sind, erläutere ich ihn anhand eines Beispiels. Artikel über kostenlose Motoren für die Website hat die Adresse: https://a-panov.ru/2014/11/free-cms/

Wenn Sie sich diese URL ansehen, wird sofort klar, dass der Artikel im November 2014 veröffentlicht wurde. Durch Entfernen des Titels mit einem abschließenden Schrägstrich ( https://a-panov.ru/2014/11/) erhalten Sie eine Liste aller Veröffentlichungen für November. Normale Adressen, Typ:

https://a-panov.ru/?p=389

keine besondere Freundlichkeit. Wenn man eine solche Adresse sieht, kann man über die Seite, auf die er führt, absolut nichts sagen.

Diese Methode ist gut, wenn es Ihnen egal ist, zu welcher Seite der neuen Site ein Link erstellt werden soll. Wenn Sie jedoch zu einer anderen Domain gewechselt sind, ist es ratsam, alle Anfragen unter Beibehaltung der Adressen umzuleiten. Verwenden Sie dazu den folgenden Code:
RewriteRule ^. * $ Http://newsite.ru/$0 [QSA, L, R = permanent]
Das neue QSA- Flag speichert auch die Parameter, die in den Adressen nach dem Fragezeichen enthalten sind. In dem bereits bekannten Beispiel:

https://a-panov.ru/?p=389

Wenn ich den Code in .htaccess oben platziere, erfolgt eine Umleitung zur Adresse http://newsite.ru/?p=389, die ohne dieses Flag nicht existieren würde.

Nachfolgend werde ich die Transformations-Einschlussrichtlinie weglassen:
RewriteEngine On
Denken Sie daran: Wenn Sie den mod_rewrite-Mechanismus verwenden, müssen alle Bedingungen / Konvertierungen nach dieser Anweisung ausgeführt werden. Zum Deaktivieren wird folgende Zeile verwendet:
RewriteEngine Off
Dementsprechend ist es nicht erforderlich, Transformationen für jede Regel ständig zu "aktivieren" - sie werden direkt nach der ersten Direktive automatisch ausgeführt.

So richten Sie eine Weiterleitung zu www (oder ohne www) ein

Solche Weiterleitungen sind für Fälle erforderlich, in denen die Site unter den Optionen nsite.ru und www.nsite.ru verfügbar ist. In diesem Fall betrachten die Suchmaschinen sie als Duplikate und können eine der Optionen als auswählen Hauptspiegel , oder bei der Suche gibt es Optionen aus beiden Domains. Im Allgemeinen ist dies ein negativer Faktor beim Ranking einer Website.

Option einfacher für eine Domain. Die Umleitung erfolgt von der Subdomain www.site.ru zu site.ru:
RewriteCond% {HTTP_HOST} ^ www \ .nsite \ .ru $
RewriteRule. * Http://nsite.ru/$0 [QSA, L, R = permanent]
Hier erschien die neue RewriteCond- Direktive, die die Bedingung festlegt, unter der Umleitungen funktionieren sollen - die RewriteRule- Regeln. Die Bedingung in diesem Fall ist der Domainname, der www.nsite.ru entspricht (in regulären Ausdrücken bedeutet das Punktsymbol „ein beliebiges Zeichen“, daher ist es ratsam, es mit einem Backslash abzuschirmen).

Die umgekehrte Umleitung ist ebenfalls sehr einfach:
RewriteCond% {HTTP_HOST} ^ nsite \ .ru $
RewriteRule. * Http://www.nsite.ru/$0 [QSA, L, R = permanent]
Beide Optionen funktionieren, haben aber ein kleines Minus - für jede neue Konfiguration muss die Domain nsite.ru durch Ihre eigene ersetzt werden. Ist es möglich, eine einzigartige Option zu treffen? Einfach!

Weiterleitung von einer beliebigen WWW-Unterdomäne:
RewriteCond% {HTTP_HOST} ^ www \. (. *) $
RewriteRule. * Http: //% 1 / $ 0 [QSA, L, R = permanent]

Weiterleitung zu einer Subdomain mit www:
RewriteCond% {HTTP_HOST}! ^ Www \.
RewriteRule. * Http: //www.% {HTTP_HOST} / $ 0 [QSA, L, R = permanent]

% {HTTP_HOST} - aktuelle Domain

So erstellen Sie .htaccess

Solche Fragen stellen sich auch. Das Problem ist, dass der Standard- Explorer (die Anwendung in Windows, die für die grafische Oberfläche zuständig ist) keine Dateien erstellt, die mit einem Punkt beginnen (Erstellen von Dateien oder Ordnern durch Klicken mit der rechten Maustaste auf den Desktop oder in ein Fenster und Auswählen der gewünschten Aktion aus der Liste Erstellen ). Es gibt jedoch einen Ausweg: Öffnen Sie den Standard-Notepad-Rekorder, wählen Sie im Menü Datei → Speichern unter ... und geben Sie als Namen der gespeicherten Datei .htaccess an - danach wird sie erstellt.

Die .htaccess-Datei funktioniert nicht

Es gibt Fälle, in denen Direktiven aus einer Datei nicht funktionieren. Dies wird normalerweise dadurch verursacht, dass die .htaccess-Unterstützung in der Apache-Konfiguration deaktiviert ist, für die die Direktive verantwortlich ist:
AllowOverride none

Dies geschieht normalerweise, um die Geschwindigkeit etwas zu erhöhen. In diesem Fall sucht und analysiert der Webserver nicht .htaccess.

Es ist auch möglich, dass Apache nicht auf dem Server verwendet wird, z. B. ist IIS der Hauptgast beim Windows-Hosting. Wenden Sie sich zur Klärung an den Support Ihres Hosters.

Gibt es ein Analogon von .htaccess in Nginx?

Noch eine ziemlich häufige Frage. Auf diesem Webserver ist dies nicht möglich. Dies ist jedoch in der Regel nicht erforderlich. Tatsache ist, dass nginx normalerweise als Frontend installiert ist, dh, es akzeptiert und verarbeitet alle Anforderungen, die es selbst ausführt oder an das Backend weiterleitet, das von Apache ausgeführt werden kann und das mithilfe von .htaccess weiter konfiguriert werden kann.

Herausgeber

nicht online 1 tag

x64 (auch bekannt als andi)

Anmerkungen: 2834 Veröffentlichungen: 394 Anmeldung: 02-04-2009