This page has been robot translated, sorry for typos if any. Original content here.

Redirects in htaccess und Skripten (301/302)

Редиректы в htaccess (301/302)

Der 301. Fehler (301 Permament Redirect), der beim Zugriff auf eine bestimmte Seitenadresse zurückgegeben wird, bedeutet, dass die Site dauerhaft an eine neue Adresse verschoben wurde, die ebenfalls im HTTP-Header angegeben ist. Sowohl Benutzer als auch Such-Bots, die über den Browser kommen, werden an die neue Adresse weitergeleitet, während für die Suchmaschinen alle Eigenschaften der alten Adresse (Seite) an die neue URL übertragen werden.

Redirect 301 (dauerhaft verschoben) ist der beste Weg, um das Ranking der Website in Suchmaschinen beizubehalten, wenn Sie es in eine neue Domain übertragen oder das Content-Management-System ändern. Bei 301-Weiterleitungen werden die alten und neuen Adressen zusammengeklebt: Parameter wie PageRank und TCI sowie das Gewicht der Seite und das Referenzgewicht der alten Adresse werden an die neue URL übergeben.

Im Folgenden finden Sie die am häufigsten verwendeten Regeln zum Konfigurieren der .htaccess-Datei für die 301-Weiterleitung.

Внимание In den Regeln: % {QUERY_STRING} - gibt das Fragment der URL nach dem Fragezeichen an (Einstellung der CGI-Parameterwerte).

Внимание Die Funktionsweise dieser oder jener Regel für eine Weiterleitung hängt davon ab, ob die URL der Seite unter diese Regel fällt oder nicht.

Внимание Für die Bedeutung einiger Schreibweisen (^, $, NC usw.), siehe die Erinnerung am Ende der Seite .

Внимание Alle Regeln werden in der Reihenfolge ihres Folgens in der .htaccess-Datei und der später geschriebenen Regel ausgeführt und später ausgeführt.

Внимание Es ist besser, alle Regeln nach zwei Zeilen zu posten:

  Optionen + FolgenSymLinks
 RewriteEngine Ein 

301 Umleitung von einer Domäne ohne WWW zu einer Domäne mit WWW-Präfix (der Hauptspiegel ist eine Domäne mit www)

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

Von einer Domäne mit einem WWW-Präfix ohne (der Hauptspiegel ist eine Domäne ohne www)

  RewriteCond% {HTTP_HOST} ^ Website \ .ru $ [NC]
 RewriteRule ^ (. *) $ Http://site.ru/$1 [R = 301, L] 

Standardumleitung von einer statischen Seite zu einer anderen

  Redirect 301 /was.php http://www.site.ru/new.php 

In diesem Fall muss die neue Adresse vollständig mit http und dem Domänennamen angegeben werden.

In einigen Fällen ist das Umleiten über RewriteRule nützlich

  RewriteRule ^ dir / dir-neu / $ 1 [R = 301, L] 

301 Redirect für Seite mit GET-Parametern

Angenommen, die Adresse der Seite lautet: http: //www.site.ru/dir/index.php? IBLOCK_ID = 1 & SECTION_ID = 111 Um 301 Weiterleitungen an eine neue Adresse zu konfigurieren, müssen Sie die folgende Regel verwenden:

  RewriteCond% {QUERY_STRING} ^ IBLOCK_ID = 1 & SECTION_ID = 111 $ [NC]
 RewriteRule ^ Verzeichnis / Index \ .php $ / new / sef /?  [R = 301, L] 

Wenn einer (oder mehrere) der GET-Parameter nicht angegeben ist (oder) oder einen beliebigen Wert haben kann (in unserem Beispiel ist dies SECTION_ID ), können Sie den folgenden Code verwenden:

  RewriteCond% {QUERY_STRING} ^ IBLOCK_ID = 1 & SECTION_ID = (. *) $ [NC]
 RewriteRule ^ Verzeichnis / Index \ .php $ / new / sef /?  [R = 301, L] 

301 redirect adressiert nur site.ru/index.php (ohne GET-Parameter) an den Haupt-Site-Mirror.

  RewriteCond% {REQUEST_URI} /index.php
 RewriteCond% {QUERY_STRING} ^ \ z
 RewriteRule ^ (. *) $ Http://site.ru/?  [R = 301, L] 

301 Umleitung aller Adressen mit index.php und GET Parametern auf Seiten nur mit GET Parametern (cut to url index.php)

Beispiel: Geben Sie site.ru/index.php?n=1 at site.ru/?n=1 ein

  RewriteCond% {REQUEST_URI} /index.php
 RewriteRule ^ (. *) $ Http://site.ru/ [R = 301, L] 

301 Redirect URL mit GET-Parametern (dynamische URL) zu statisch

1 Variante (einfache Adresse mit GET-Parameter)

  RewriteCond% {QUERY_STRING} ^ id = 229
 RewriteRule ^. * $ / Supermodel /?  [R = 301, L] 

2 Option (von Seite und GET-Parameter)

  RewriteCond% {REQUEST_URI} / Test /
 RewriteCond% {QUERY_STRING} ^ id = 229
 RewriteRule ^. * $ / Supermodel /?  [R = 301, L] 

301 Redirect für eine bestimmte Datei, nicht einen ganzen Ordner

Wenn Sie die Umleitung nur für die Adresse http://www.site.ru/dir/ einrichten möchten, aber gleichzeitig die Seite http://www.site.ru/dir/index.php?IBLOCK_ID=1 unter der alten Adresse geöffnet ist , brauchen Sie Verwenden Sie in der Regel das Sonderzeichen $.

  RewriteRule ^ dir / $ http://www.site.ru/new-dir/ [R = 301, L] 

Alle Seiten der gleichen Domain auf der Startseite einer anderen Domain

  RewriteCond% {REQUEST_URI} (. *)
 RewriteRule ^ (. *) $ Http://site.ru/ [L, R = 301] 

Jede Seite einer Domäne hat dieselbe Adresse einer anderen URL

  RewriteCond% {REQUEST_URI} (. *)
 RewriteRule ^ (. *) $ Http://site.ru/$1 [L, R = 301] 

Was ist mit den Domänen in der RF-Zone?

Für Domänen in der RF-Zone gelten dieselben Regeln, aber nur alle kyrillischen Symbole müssen durch einen alternativen Code ersetzt werden (es ist in Latein). Insbesondere die Zone selbst. pf wird umgewandelt in. xn - p1ai .

301 Redirect von Domain zu Domain

  RewriteCond% {HTTP_HOST} ^ alte Seite \ .ru $ [NC]
 RewriteRule ^ (. *) $ Http://www.site.ru/$1 [R = 301, L] 

301 Redirect für eine Domain in der RF-Zone

  RewriteCond% {HTTP_HOST} ^ xn -... \ .Xn - p1ai $ [NC]
 RewriteRule ^ (. *) $ Http://www.site.ru/$1 [R = 301, L] 

Einstellung der Umleitung auf die Schrägstrich-Ordner am Ende / (am Ende einen Schrägstrich hinzufügen)

  RewriteCond% {REQUEST_FILENAME}! -f
 RewriteCond% {REQUEST_URI}! \ .. {1.10} $
 RewriteCond% {REQUEST_URI}! (. *) / $
 RewriteRule ^ (. *) $ Http://www.site.ru/$1/ [L, R = 301] 

301 Umleitung von Seiten mit einem Schrägstrich ohne Schrägstrich (ganze Seite)

  RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! [^ \ /] $
 RewriteRule ^ (. *) \ / $ / $ 1 [R = 301, L] 

Richten Sie die Umleitung auf Ordner ohne Schrägstrich ein (entfernen Sie den Schrägstrich am Ende)

  RewriteCond% {REQUEST_FILENAME}! -d
 RewriteCond% {REQUEST_URI} ^ (. +) / $
 RewriteRule ^ (. +) / $ Http://www.site.ru/$1 [R = 301, L] 

301 Redirect von Seiten ohne Schrägstrich auf dem Schrägstrich (oft in CMS-Systemen automatisch installiert)

  RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! \ / $
 RewriteRule ^ (. * [^ \ /]) $ / $ 1 / [R = 301, L] 

Eine (und nicht zwei aufeinanderfolgende!) 301 Weiterleitungen ohne www und mit einem Schrägstrich am Ende der Seitenadresse

  RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! \ / $
 RewriteCond% {HTTP_HOST} ^ www \. (. *) $
 RewriteRule ^ (. *) $ Http: //% 1 / $ 1 / [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! [^ \ /] $
 RewriteCond% {HTTP_HOST} ^ www \. (. *) $
 RewriteRule ^ (. *) $ Http: //% 1 / $ 1 [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! \ / $
 RewriteCond% {HTTP_HOST} ^ ([^ www]. *) $
 RewriteRule ^ (. *) $ Http: //% 1 / $ 1 / [L, R = 301] 

Eine (und nicht zwei aufeinanderfolgende!) 301 Weiterleitungen zu www und mit einem Schrägstrich am Ende der Seitenadresse

  RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! \ / $
 RewriteCond% {HTTP_HOST} ^ www \. (. *) $
 RewriteRule ^ (. *) $ Http: //www.%1/$1/ [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! \ / $
 RewriteCond% {HTTP_HOST} ^ ([^ www]. *) $
 RewriteRule ^ (. *) $ Http: //www.%1/$1/ [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! [^ \ /] $
 RewriteCond% {HTTP_HOST} ^ ([^ www]. *) $
 RewriteRule ^ (. *) $ Http: //www.%1/$1 [L, R = 301] 

Eine (und nicht zwei aufeinanderfolgende!) 301 Weiterleitungen nach www und ohne Schrägstrich am Ende der Seitenadresse

  RewriteCond% {REQUEST_URI} ^ \ / $
 RewriteCond% {HTTP_HOST} ^ ([^ www]. *) $
 RewriteRule ^ (. *) $ Http: //www.%1/$1 [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI} \ / $
 RewriteCond% {HTTP_HOST} ^ www \. (. *) $
 RewriteRule ^ (. *) \ / $ Http: //www.%1/$1 [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! \ / $
 RewriteCond% {HTTP_HOST} ^ ([^ www]. *) $
 RewriteRule ^ (. *) $ Http: //www.%1/$1 [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI} \ / $
 RewriteCond% {HTTP_HOST} ^ ([^ www]. *) $
 RewriteRule ^ (. *) \ / $ Http: //www.%1/$1 [L, R = 301] 

Eine (und nicht zwei aufeinanderfolgende!) 301 Weiterleitungen ohne www und ohne Schrägstrich am Ende der Seitenadresse

  RewriteCond% {REQUEST_URI} ^ \ / $
 RewriteCond% {HTTP_HOST} ^ www \. (. *) $
 RewriteRule ^ (. *) $ Http: //% 1 / $ 1 [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI} \ / $ 
 RewriteCond% {HTTP_HOST} ^ www \. (. *) $
 RewriteRule ^ (. *) \ / $ Http: //% 1 / $ 1 [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI}! \ / $
 RewriteCond% {HTTP_HOST} ^ www \. (. *) $
 RewriteRule ^ (. *) $ Http: //% 1 / $ 1 [L, R = 301]
 
 RewriteCond% {REQUEST_URI}! \?
 RewriteCond% {REQUEST_URI}! \ &
 RewriteCond% {REQUEST_URI}! \ =
 RewriteCond% {REQUEST_URI}! \.
 RewriteCond% {REQUEST_URI} \ / $
 RewriteCond% {HTTP_HOST} ^ ([^ www]. *) $
 RewriteRule ^ (. *) \ / $ Http: //% 1 / $ 1 [L, R = 301] 

301 Redirect von Domäne zu Ordner in einer anderen Domäne

  RewriteCond% {HTTP_HOST} ^ si-te \ .ru $ [NC]
 RewriteRule ^ (. *) $ Http://www.site.ru/si-te/ [R = 301, L] 

Redirect von allen Domain-Dateien mit Ausnahme des Bitrix-Administrator-Ordners

  RewriteRule ^ bitrix / / bitrix / admin / [L, R = 301]
 RewriteRule ^ (. *) $ Http://www.newsite.ru/new/ [L, R = 301] 

Leitet alle Dateien in einem Ordner in eine bestimmte Datei um

  RewriteRule ^ dir (. *) $ /neu-file.php [L, R = 301] 

Umleiten von Dateien aus einem angegebenen Ordner mit Ausnahme einer bestimmten Datei

  RewriteRule ^ dir / keine-datei.html /no-file-neu.html [L, R = 301]
 RewriteRule ^ dir (. *) $ /all.php [L, R = 301] 

Ändern Sie Seiten von HTML-Erweiterung zu PHP-Erweiterung

  RedirectMatch 301 (. *) \. Html $ http: //www.new-site.ru$1.php 

Angabe des Typs der Indexseite (php, html, htm und andere)

Gibt die Reihenfolge an, in der die Indexdateitypen im Stammverzeichnis des Verzeichnisses geladen werden.

  Verzeichnisindex index.html index.php index.htm index.shtml 

Umleitung von der Indexseite php zum Ordner selbst (root)

  RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / index \ .php \ HTTP /
 RewriteRule ^ index \ .php $ http://www.site.ru/ [R = 301, L] 

Umleitung von Sub-Domain zu primärer Second-Level-Domain

  RewriteCond% {HTTP_HOST} ^ test.site.ru $ [NC]
 RewriteRule ^ (. *) $ Http: //site.ru% {REQUEST_URI} [R = 301, NC, L, QSA] 

Redirect für eine bestimmte Datei in verschiedenen Verzeichnissen (Ordnern)

Mit dem Code können Sie eine 301-Umleitung von allen Ordnern der Form http://site.ru/***/uniqe-file.html in eine Datei im Stammverzeichnis /unique-file.html einfügen. Es ist nützlich, wenn Sie die Site neu gestalten und die Links ändern.

  RewriteRule [^ abc] /eindeutige_datei.html /eindeutige_datei.html [R = 301, L] 

Wenn Sie eine CNC-Kopie einer dynamischen Seite erstellen möchten, können Sie sie auch mit .htaccess implementieren

Mit dem Code können Sie eine Kopie der Seite mit der relativen Adresse /studio/news/detail.php?ID=230354&PAGEN_2=11 unter / testovyi / test / erstellen.

  RewriteRule ^ testovyi / test /? $ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC, L] 

Angabe des Pfades zur Fehlerdatei 404 mit Hilfe von .htaccess

Achtung, es ist wichtig, dass der Server-Response-Code für den 404-Fehler genau 404 ist. Der Pfad zur Datei wird mit der folgenden Zeile angezeigt:

  ErrorDocument 404 /404-for-me.php 

Redirects auf dem Apache-Server

Внимание Bei Websites, die den Apache-Server nicht verwenden, können ähnliche 301-Weiterleitungen problemlos mit PHP konfiguriert werden.

  <? php
 header ("HTTP / 1.1 301 dauerhaft verschoben");
 Überschrift ("Location: http://www.site.ru/dir/");
 exit ();
 ?> 

Внимание Optimale Anpassung aller Weiterleitungen an die Endseite (ohne zwischengeschaltete Weiterleitungen in einem Schritt) verbessert die Wahrnehmung von Suchmaschinen und Benutzern.

Wenn Sie eine Umleitung nur für einige USER_AGENTs konfigurieren möchten und nicht für alle Benutzer

  RewriteCond% {HTTP_USER_AGENT} (iPad | ipad | iphone | iPhone | ipod | iPod | android | mid | j2me | symbian | serie | 60 | symbos | windows | mobil | windows | ce | ppc | smartphone | blackberry | mtk | bada | Windows \ Telefon) [NC]
 RewriteRule (. *) Http://mobile.site.ru/ [L, R = 301] 

Wenn Sie eine Weiterleitung für alle Suchroboter einrichten möchten (siehe die Liste ihrer USER_AGENT'ov)

  RewriteCond% {HTTP_USER_AGENT}! (Accoona | ia_archiver | antabot | ask \ jeeves | baidu | dcpbot | eltaindexer | feedfetcher | gamespy | gigabot | googlebot | gsa-crawler | grub-client | gulper | slurp | mihalismus | msnbot | worldindexer | ooyyo | pagebull | roller | w3c_validator | jigsaw | webalta | yahoofeedseeker | yahoo! \ slurp | mmcrawler | yandexbot | yandeximages | yandexvideo | yandexmedia | yandexblogs | yandexaddurl | yandexfavicons | yandexdirect | yandexmetrika | yandexcatalog | yandexnews | yandeximageresizer) [NC]
 RewriteRule (. *) Http://no-search.site.ru/ [L, R = 301] 

Ein paar einfache Beispiele

  Weiterleitung von www.site.ru/component/content/?view=featured zu www.site.ru/
 RewriteCond% {QUERY_STRING} ^ view = Vorgestellt $ [NC]
 RewriteRule ^ Komponente / Inhalt /? $ /?  [R = 301, L] 
  Weiterleitung von www.site.ru/index.php?idc=4&marea=6 zu www.site.ru/
 RewriteCond% {QUERY_STRING} ^ idc = 4 & marea = 6 $ [NC]
 RewriteRule ^ Index \ .php $ /?  [R = 301, L] 

Entfernen Sie alle GET-Parameter nach dem Fragezeichen (?)

  RewriteRule (. *) $ 1?  [R = 301, L]
 Positionierung nach: RewriteBase / 

Die Hauptseite von site.ru ist immer voll mit double bei site.ru/index.php

  Weiterleitung 301 /index.php http://site.ru/ 

Or

  RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / index \ .php \ HTTP /
 RewriteRule ^ Index \ .php $ http://site.ru/ [R = 301, L] 

Wenn Ihre Website mehrere Namen hat, Sie aber möchten, dass Benutzer den Namen der Hauptwebsite immer in der Adressleiste sehen, verwenden Sie die folgenden Zeilen unmittelbar nach RewriteEngine On:

  RewriteCond% {HTTP_HOST}! ^ Site.ru $
 RewriteRule ^ (. *) Http://site.ru/$1 [R = 301, L] 

301 Weiterleitung an die Endung .html (für diejenigen, die dieses Suffix enthalten haben), Umleitung von site.ru/article und site.ru/article/ nach site.ru/article.html

  RewriteCond% {REQUEST_URI} (. * / [^ /.] +) ($ | \?)
 RewriteRule. *% 1.html [R = 301, L]
 RewriteRule ^ (. *) / $ /$1.html [R = 301, L] 

Or

  REDIRECTMATCH 301 (. * / [^ /.] +) ($ | \?) $ Http: //site.ru$1.html 

Redirect mit .html on ohne .html, d. H. mit site.ru/article.html auf site.ru/article (für diejenigen, die zuerst .html, und dann beschlossen, es loszuwerden)

  RewriteBase /
 RewriteRule (. *) \. Html $ $ 1 [R = 301, L] 

Or

  REDIRECTMATCH 301 (. *) \. Html $ http: //site.ru$1 

Umleiten für Seiten mit Parametern, z. B. von site.ru/blog?limitstart=0 auf site.ru/blog

  RewriteCond% {QUERY_STRING} ^ limitstart = 0
 RewriteRule ^ Blog http://site.ru/blog?  [R = 301, L] 

Alle Seiten des alten Bereichs werden nur auf die gleichen Seiten des neuen Bereichs umgeleitet, zum Beispiel site.ru/blog/raznoe/article auf site.ru/blog/article

  RewriteRule ^ blog / raznoe /(.*)$ http://site.ru/blog/$1 [R = permanent, L] 

301 Redirect von einer Adresse ohne Schrägstrich auf dem Schrägstrich, das ist von site.ru/article auf site.ru/article/

  RewriteCond% {REQUEST_URI} (. * / [^ /.] +) ($ | \?)
 RewriteRule. *% 1 / [R = 301, L] 

Redirect mit einem Schrägstrich am Ende, ohne einen Schrägstrich am Ende, d. H. von site.ru/article/ auf site.ru/article

  RewriteRule ^ (. *) / $ / $ 1 [R = 301, L] 

Eine weitere Option ist, wie Sie den abschließenden Schrägstrich am Ende loswerden

  RewriteCond% {REQUEST_FILENAME}! -d
 RewriteRule ^ (. +) / $ / $ 1 [R = 301, L] 

Option zum Entfernen des Schrägstrichs für Seiten mit Parametern, z. B. Seiten mit Paginierung site.ru/categoriya?start=5/

  RewriteCond% {QUERY_STRING} ^ Start = (\ d +) /
 RewriteRule ^ (. *) / $ 1? Start =% 1 [R = 301, L] 

Zuerst habe vergessen, SEO in globalen Einstellungen einzuschließen, und dann als Ergebnis - im Index viele Dokumente mit /index.php in der Adresse eingeschlossen.

Nach dem gleichen Prinzip können Sie jede Verschachtelung entfernen, zum Beispiel mit site.ru/catalog auf site.ru/catalog umleiten (/ ru / wird entfernt).

  RewriteRule ^ index.php /(.*)$ http://mysite.ru/$1 [R = permanent, L] 

Den Zugriff für schlechte Bots verweigern

  SetEnvIfNoCase Benutzer-Agent "^ Baiduspider" bad_bot
 SetEnvIfNoCase Benutzer-Agent "^ MSNBot" bad_bot
 SetEnvIfNoCase Benutzer-Agent "^ Baiduspider" bad_bot
 SetEnvIfNoCase User-Agent "^ Ezooms" bad_bot
 # Setzen Sie die Liste selbst fort, geben Sie den Benutzeragenten des schlechten Agenten an
 Bestellung zulassen, verweigern
 Erlaube von allen
 Verweigern von env = bad_bot 

Oder robots.txt gibt, auf dem Rest 404 (für den Agenten der Agent - Baiduspider und Ezooms)

  RewriteCond% {HTTP_USER_AGENT} \ b (Baiduspider | Ezooms) \ b [NC]
 RewriteCond% {REQUEST_URI}! ^ / Roboter \ .txt [NC]
 RewriteRule. * - [R = 404] 

Verschiedene andere Möglichkeiten zum Redirect

Im Folgenden werden ähnliche Einstellungsregeln für 301-Weiterleitungen angegeben.

Redirect mit einem Skript (Header senden)

Abfragen können auch mithilfe von Skripts umgeleitet werden, wobei die Header die erforderlichen Header senden.

  HTTP / 1.1 301 Dauerhaft verschoben
 Ort: http://www.newdomain.ru/newdir/newpage.htm 

JavaScript-Weiterleitung

Hier gibt es keine Grenzen für Kreativität und die Möglichkeit, "stecken zu bleiben". Varianten der JavaScript- Umleitung werden oft mit der Funktion setTimeout ('function', delay) implementiert.

Zum Beispiel, klicken Sie automatisch auf den "Senden" -Button des "Suchformulars" Formular in 0.1 Sekunden nach dem Laden des Codes:

  setTimeout ('document.forms ["Suchformular"]. Submit.click ()', 100); 

Sie können jede Aktion auf die Schaltfläche "Senden" hängen, zum Beispiel eine neue URL in diesem Fenster öffnen. Übrigens sind solche Weiterleitungen häufiger, wenn Dorvey (DorWay) arrangiert wird - der Browser des Benutzers wird auf eine andere Seite umgeleitet, und der Suchroboter, der JavaScript nicht versteht, indiziert diese Seite, auf die der Benutzer nicht zugreifen kann. Darauf legen die Dorvejschiki den Text, gefüllt mit den "notwendigen" Schlüsselwörtern.

Einfach auf eine andere Seite umleiten - nach dem <body> JavaScript-Code einfügen:

  location = "http://www.new.domain.ru"; 

oder

  document.location.href = "http://www.new.domain.ru"; 

oder

  window.location.reload ("http://www.new.domain.ru"); 

oder

  document.location.replace ("http://www.new.domain.ru"); 

Im letzteren Fall ist es nicht mehr möglich, zu der Seite zurückzukehren, die die Umleitung durchgeführt hat, weil Die Adresse der Seite wird aus dem Verlauf gelöscht (was oft erforderlich ist).

Wenn Sie eine Verzögerung benötigen, können Sie location = "http://www.new.domain.ru" arrangieren ; in Form einer Funktion und fügen Sie es in setTimeout ('function ()', delay_in_miles); .

Wie sich verschiedene Suchmaschinen auf eine solche Weiterleitung beziehen können, bleibt auf ihrem "Gewissen", so dass es für die hier beschriebenen Zwecke besser ist, sie nicht zu verwenden. Die meisten Browser führen diese Umleitung wie erwartet aus, während der Benutzer zusätzliche Informationen anzeigen kann, warum er zu einer anderen Adresse verschoben wird.

Da es einige Wochen oder Monate dauern kann, eine PR von einer alten Site (Seite) auf eine neue Site (Seite) zu übertragen, dürfen Sie den alten Domain-Namen, die Site oder die Seite erst zerstören, wenn dies geschieht.

PHP-Weiterleitung

  <? php
 header ("HTTP / 1.1 301 dauerhaft verschoben");
 header ("Ort: http://www.newdomain.ru/newdir/newpage.htm");
 exit ();
 ?> 

ASP-Weiterleitung

  <% @ Sprache = VBScript%>
 <% 
 Response.Status = "301 wurde dauerhaft verschoben"
 Response.AddHeader "Standort", "http://www.new-url.com"
 Antwort.End
 %> 

ASP.NET-Weiterleitung

  <Skript runat = "Server">
 private void Page_Load (Objektabsender, System.EventArgs e)
 {
 Response.Status = "301 dauerhaft verschoben";
 Response.AddHeader ("Standort", "http://www.new-url.com");
 }
 </ script> 

ColdFusion-Weiterleitung

  <.cfheader statuscode = "301" statustext = "Permanent verschoben">
 <.cfheader name = "Standort" value = "http://www.new-url.com"> 

JSP (Java) Weiterleitung

  <%
 response.setStatus (301);
 response.setHeader ("Standort", "http://www.new-url.com/");
 response.setHeader ("Verbindung", "Schließen");
 %> 

CGI PERL

  $ q = neues CGI;
 print $ q-> redirect ("http://www.new-url.com/"); 

Ruby auf Schienen

  def alte_Aktion
 headers ["Status"] = "301 dauerhaft verschoben"
 redirect_to "http://www.new-url.com/"
 Ende

Implementieren einer Umleitung in nginx

  if ($ host = 'www.domain.com') {
 umschreiben ^ (. *) $ http: //domain.com$1 permanent;
 } 

Memo für verwendete Symbole und Symbole

Die RewriteCond-Zeile ist die Bedingung für die Ausführung der RewriteRule-Regel. Wenn die Bedingung erfüllt ist, wird die Umleitung ausgelöst.

Regeln können mit regulären Ausdrücken angegeben werden.

Sonderzeichen, die in den Regeln und ihren Bedeutungen verwendet werden.

  • ^ - Sonderzeichen des Zeilenanfangs;
  • $ - Sonderzeichen des Zeilenendes;
  • !! - Sondercharakter der Negation;
  • . - ein Punkt ersetzt ein beliebiges Zeichen, aber nur eines;
  • () - Gruppierung;
  • \ - "Abschirmung" Schrägstrich, das nächste Zeichen, nachdem es als normal angesehen wird, und kein Sonderzeichen.

Modifikatoren werden nach normalen, Sonderzeichen oder deren Gruppen verwendet und erlauben es, die Fähigkeiten von Vorlagen für das Auslösen von Regeln zu erweitern.

  • ? - Das Symbol wird 0 oder 1 Mal wiederholt;
  • + - wiederholt sich von 1 bis 65536 Mal;
  • * - Wiederholt von 0 bis 65536 mal.

Flags, zusätzliche angeben. Optionen für die verwendete Regel. In eckigen Klammern, die durch ein Komma getrennt sind, steht [NC] oder [R = 301, L].

  • NC - das NoCase-Flag, das die Case-Control beim Auslösen der Regel deaktiviert.
  • R - das Flag von Redirect, erzeugt einen Prozess, um die Änderung der URL zu stoppen und gibt das Ergebnis zurück. Der häufigste Wert ist R = 301, aber andere sind für temporäre Umleitungen möglich (302, MOVED TEMPORARY).
  • L - das Flag Last, stoppt die Bildung der URL und die Zeile gilt als endgültig.

Syntax für reguläre Ausdrücke

. - Der Punkt ersetzt ein beliebiges Zeichen.

[abc] - gibt eine Liste der Zeichen an, die den Buchstaben a, b oder c entsprechen.

[^ abc] - Eine Liste von Zeichen, die nicht im angegebenen Bereich liegen. Entspricht einem beliebigen Zeichen außer a, b oder c.

* - bedeutet, dass das vorhergehende Zeichen wiederholt werden kann (0 oder mehr Male).

[abc] * - Der Befehl findet aufeinanderfolgende Zeichen aus einer gegebenen Menge.

[^ abc] * - zum genauen Gegenteil.

. * - ersetzt absolut jeden Zeichensatz. ". *" - findet alle Teilstrings zwischen den Anführungszeichen.

^ - der Anfang der Zeile (wenn am Anfang des Ausdrucks verwendet).

$ Zeigt das Ende der Zeile an.

\ w ist ein Buchstabe, eine Zahl oder ein Unterstrich _.

\ d - ersetzt jede Ziffer.

\ D - ersetzt ein beliebiges Zeichen, aber keine Ziffer.

[0-9] - ersetzt jede Ziffer.

[az] ist ein beliebiger Buchstabe von a bis z (der gesamte lateinische Zeichensatz) in Kleinbuchstaben.

[AZ] - jeder Buchstabe von A bis Z im UPPER-Register.

[a-zA-Z] ist jeder Buchstabe von a bis Z in irgendeinem Register.

[aZ] ist das Gleiche.

Alles über die Umleitung

Haftungsausschluss: Die Materialien für diesen Artikel wurden aus den Weiten des Internets (RUnet und BOURGEONET) und persönlichen Erfahrungen entnommen. Einige Punkte scheinen umstritten und werden nun in der Praxis getestet, so dass die Informationen des Artikels ergänzt und verfeinert werden.
** In Verbindung mit der steigenden Anzahl von Nachrichten über Google 302 Pagejacking , benutze den Redirect 301 und nicht 302 - dieses Thema ist noch in der Entwicklung.

Woher kam dieses www?

Im Internet finden Sie viele Empfehlungen, wie Sie domain.ru und www.domain.ru vereinen können. Aber abgesehen davon, wie es gemacht wird, wäre es nützlich, ein wenig auch warum zu verstehen. Dies könnte helfen, die geeignete Lösung aus der vorgeschlagenen Sorte zu wählen.

Zunächst ist es wichtig zu verstehen, dass www.domain.ru technisch identisch ist mit subdomain.ru , obwohl dieser Sachverhalt aus einem ganz anderen Grund existiert.

Vor zehn oder zwölf Jahren war das World Wide Web nur ein kleiner Teil des Internets, und der schnellste PC basierte auf 386 Chips. Sie waren nicht sehr schnell und konnten den größten Teil der Last nicht bewältigen, so dass es notwendig war, verschiedene "Teile" des Internets auf separaten Maschinen zu platzieren.

Zum Beispiel wurde der Apache-Server auf einem Computer gehostet, der Mail-Server auf dem anderen und der FTP-Server auf einem anderen. Jeder der Computer reagierte auf eine andere IP-Adresse, aber auf den gleichen Domänennamen. Innerhalb dieses Domänennamens unterscheiden sich die Computer nach dem bereitgestellten Dienst (der dann "Computername" genannt wurde). So begannen die Namen der Server im Internet mit dem "Computernamen" für den Dienst, den sie bereitstellt: www.domain.ru , mail.domain.ru und ftp.domain.ru . ("Old-Timer" des Internets, erinnern sich wahrscheinlich auch solchen archaischen Dienst, als gopher.domain.ru , in Optionen IE blieb es noch).

Natürlich sind die heutigen Computer viel leistungsfähiger, und wir können alle verschiedenen "Teile" unserer Internetdienste in derselben "Box" ablegen (das Prinzip von Head & Sholders - "Zwei in einer Flasche") wurde lange vor dem massiven Auftreten von "Schuppen" in Russland angewendet :) .

Tatsächlich installieren wir oft mehrere hundert Domains mit jeweils eigenen Diensten (http, ftp, mail ...) auf demselben Server. Daher ist das www- Präfix gegenwärtig "Antiquitäten" und kann ignoriert werden. Das Problem ist, dass viele Software und große Verzeichnisse (zum Beispiel Yahoo) automatisch www.domain.ru ersetzen , auch wenn Sie domain.com eingeben , und dazu haben wir mehrere Milliarden Menschen, die www vor jedem Namen automatisch drucken Domäne.

Dieser Ausflug in die Geschichte, zumindest für mich, scheint interessant, aber die einzige wichtige Sache ist, dass technisch www.domain.ru - genau wie sub.domain.ru - als völlig unterschiedliche Objekte in Bezug auf domain.ru betrachtet werden , aber aus den oben genannten Gründen sollten normalerweise www.domain.ru und domain.ru normalerweise dieselbe Seite anzeigen , anders als sub.domain.ru .

Der Benutzer (Surfer) oder die Suchmaschine (Spider) erhält beim Anfordern der Seite den gleichen Antwortcode 200 OK und kann die Domänen nicht von www und ohne unterscheiden.

Erstellen eines Alias ​​für www

Wenn jemand "Yuri!" Schreit in einem überfüllten Raum wird er wahrscheinlich meine Aufmerksamkeit erregen. Wenn jemand "Savilov" schreit! im selben Raum werde ich auch darauf antworten. Weil diese beiden Namen, obwohl sie völlig verschieden sind, im Allgemeinen auf dieselbe Person verweisen. Vereinfacht gesagt können wir sagen, dass "Yuri" im Wesentlichen ein Pseudonym (Alias) für "Savile" ist. Wenn sich jemand in diesem Raum nähert und mich "Oleg" nennt, werde ich mich wahrscheinlich umsehen, "Oleg" finden und ihn darauf hinweisen, dass dieser jemand sucht (wenn dieser jemand, nicht so hübsche Person, damit ich lügen kann :) . "Yuri" und "Oleg" sind zwei verschiedene Namen, die auf zwei verschiedene Personen verweisen, also muss ich die Anfrage der Person dahin umleiten , wo sie entsprechend ihrer Anfrage antworten wird. Auf 99.9% aller Serverkonfigurationen geben domain.ru und www.domain.ru genau den gleichen Speicherplatz an. Jeder ist nur ein Alias ​​für einen anderen. Die Verwendung der Umleitung, um den gleichen Ort auf der Platte anzugeben, hat die gleiche Bedeutung wie wenn jemand zu mir "Yuri" ruft und ich antworte: "Nein, du brauchst Savilov, ich bin's."

Alias und Redirect sind nicht gleich, obwohl es oft möglich ist, das eine durch das andere zu ersetzen. Die Erstellung eines Alias ​​erfolgt in der Regel auf zwei Ebenen. Auf der Ebene des Domänennamensystems (DNS) sollten wir immer einen Eintrag für alle Benutzer erstellen, normalerweise einen CNAME für alle oder vielleicht einen CNAME für den primären und einen Eintrag für den sekundären. Wenn sich die fragliche Domäne auf einer statischen IP-Adresse befindet, müssen Sie nur einen Spitznamen erstellen. Die meisten von uns teilen jedoch eine IP-Adresse mit anderen Domänen. Daher müssen wir über die DNS-Ebene (Domain Name System) hinaus auf die Netzwerkserverebene wechseln, um die Aliaskonfiguration abzuschließen. Verwenden Sie zum Beispiel Apache, um einen Einstiegspunkt in der Konfigurationsdatei hpptd.conf zu erstellen

 ServerName domain.ru
 DocumentRoot / home / domäne / www
 ServerAlias ​​www.domain.ru

Natürlich müssen Sie zuerst eine WWW-Version mit einer WWW-Version durch einen Eintrag im DNS-Server verbinden:

Für eine Top-Level-Domain:

  IN A 192.xxx.xxx.xxx
 www IN A 192.xxx.xxx.xxx 

Für die Subdomain-Informationen in der Top-Level-Domain:

  info IN A 192.xxx.xxx.xxx
 www.info CNAME info 

Das ist alles, was getan werden muss. Surfer oder Spider, die entweder zu domain.com oder zu www.domain.ru gehen, erhalten genau die gleichen Seiten. Unser Problem ist jedoch, dass sich die angeforderte URL nicht ändert und die angeforderte Seite mit 200 OK antwortet, unabhängig davon, ob wir auf die Domain mit oder ohne www zugreifen. Wenn es für Surfer generell gleichgültig ist, so kann dies nicht in Bezug auf den Suchserver (Spider) gesagt werden, der zumindest domain.com und www.domain.ru zumindest getrennt als eigenständige Objekte auch mit dass wir wissen, dass sie Pseudonyme sind. Google - der erste Suchserver , der begann, komplexe Doppelfilter und die notwendige Logik anzuwenden, um domain.ru und www.domain.ru in ein einzelnes Objekt zu "fusionieren". Leider gibt es in diesem Satz etwas Nachdruck auf das Wort "letztlich". Wenn Sie die Aliase des Domain Name System (DNS) oder ServerAlias ​​verwenden, erkennt Google schließlich domain.com und www.domain.com als einzelnes Objekt und zeigt nur eine Site im SERP an. Leider dauert dies in der Regel mehrere Monate, und wenn Sie den Inhalt der Website häufig ändern, dann als Spider Indizes domain.ru/page.htm und www.domain.ru/page.htm zu verschiedenen Zeiten - es wird verschiedene Inhalte von Seiten von www erhalten und ohne). Dann können diese paar Monate für ein Jahr oder länger dauern.

Warum ist es notwendig, domain.ru und www.domain.ru zu vereinen?

Viele "seriöse" Websites verwenden nur die Domäne mit dem Präfix www (z. B. die meisten Websites mit PR 10. Wenn Sie versuchen, w3.org oder adobe.com zu kontaktieren, werden Sie sehen, dass Ihr Browser sofort auf die Website mit www weitergeleitet wird nicht nur ein Alias, weil der Standort Ihrer Navigation tatsächlich in eine neue Domain mit www geändert wird. Ich glaube, dass Google dies normalerweise behandelt, nicht nur, weil "ernsthafte" Websites dies tun, sondern Google es tut (wenn Sie es nicht glauben, tippen Sie ein google.com im Browser.) Interessanterweise ist die meisten "ernst" sa ytov verwendet Redirect 302. Nur wenige, wie w3.org, geben einen Statuscode 301 zurück. Offensichtlich behandelt Google Redirect 301 und 302 gleichermaßen.

Der einzige Grund, warum Google glaubt, dass die Website mit dem Präfix www sein sollte : Sie können Google Suchabfrage "Maulkorb" Website narod.ru vergleichen - der Unterschied wird spürbar sein - ohne das Präfix www, Google wird in die Ausgabe aller Subdomains enthalten. Aber da es Präzedenzfälle gibt, wenn eine Site ohne www PR-höher als eine Site ohne www hat, diskriminiert Google nicht alles in allem.

Anstatt sich auf Aliase und Filter von Suchmaschinen (Spiders) zu verlassen, kam jemand daher auf eine geniale Idee, einen Alias ​​auf einen anderen Alias ​​umzuleiten, der im Wesentlichen auf sich selbst umleitet. Dies ist eines der Dinge, die im Grunde getan werden, denn die Suchmaschinen existieren und sollten daher helfen, Backlinks zu vermeiden. Es kann jedoch mehrere Gründe geben, die eine obligatorische Umleitung erfordern: Da technisch http://mysite.ru/ und http://www.mysite.ru/ VERSCHIEDENE Websites sind, können PHP-Sitzungen nicht von einem zum anderen übertragen werden. Dies ist ein weiterer Grund, die URL im Browser neu zu schreiben, indem Sie zum Alias ​​umleiten, insbesondere wenn Sie nur ein SSL-Zertifikat für die Domain www.mysite.ru haben ...

Technische Umleitungsoptionen

Nun versuchen wir, die Frage zu beantworten, warum Weiterleitungsempfehlungen oft mod_rewrite und RedirectMatch in der .htaccess- Datei (die bestimmte Ressourcen des Rechners erfordern, um sie auszuführen) und weniger oft eine einfachere Lösung vorschlagen. Warum können wir nicht alle komplexen regulären Ausdrücke eliminieren und nur die Zeile "Redirect 301 / http://www.domain.com" (für die hpptd.conf-Version oben) zu unserem .htaccess hinzufügen? Da domain.com und www.domain.ru Aliasnamen sind und auf dasselbe Verzeichnis verweisen, werden alle .htaccess- Direktiven in diesem Verzeichnis auf BEIDEN Domänen angewendet. Simple Forwarding wird auf einigen Serverplattformen in einen "Teufelskreis" führen und letztlich zusammenbrechen. Lassen Sie uns ein wenig versuchen, die Konfiguration des Servers zu ändern:

 ServerName domain.ru
 DocumentRoot / home / domäne / www
 ServerName www.domain.ru
 DocumentRoot / home / wwwdomain / www

Hinweis: In dieser Konfiguration verweisen domain.ru und www.domain.ru auf verschiedene Ordner auf dem Server und daher nicht auf Aliase. Wir können nun die .htaccess- Datei in den Ordner / home / wwwdomain / www legen , ohne etwas im Ordner / home / domain / www zu beeinflussen, und den einfacheren Befehl Redirect verwenden, um das Ziel zu erreichen. Das Problem ist gelöst, aber leider verschwenden wir ein wenig Speicherplatz, so dass Sie diese Konfiguration nicht oft sehen. Diese Konfiguration bietet Ihnen jedoch eine andere Möglichkeit:

 ServerName domain.ru
 DocumentRoot / home / domäne / www
 ServerName www.domain.ru
 Weiterleitung 301 / http://domain.ru/

Wir konfigurieren domain.ru und www.domain.ru weiterhin als separate Objekte (keine Aliase), aber anstatt DocumentRoot für das zweite Objekt zu definieren, fügen wir eine einfache Umleitung ein . Wir vermeiden die Widersprüche, wenn wir versuchen, ein Pseudonym umzuleiten, ohne es zu schaffen. Der Nachteil dieser Methode besteht darin, dass für den Host-Administrator mehr Arbeit erforderlich ist. Es ist notwendig, zwei Blöcke von Datensätzen anstelle von einem zu definieren, aber noch wichtiger ist es, beide Blöcke "unisono" zu unterstützen. Der Vorteil besteht darin, dass jede separate Seitenanforderung, die an Ihre Domäne gesendet wird, zu einer Leseoperation für .htaccess führt und die Datei analysiert. Fügen Sie nun alle regulären Ausdrücke hinzu , die für jede einzelne Seitenanforderung angewendet werden, und multiplizieren Sie dann all dies mit 200 bis 500 anderen Domänen, die auf dem Server leben.

Die Umleitung, die in httpd.conf platziert wird, benötigt keine RegExp und, was noch wichtiger ist, wird nur einmal gelesen und geparst, wenn der Apache Server gestartet wird. Dies ist meiner Meinung nach die eleganteste Lösung , denn Es vermeidet die Erstellung von Aliasen und minimiert die Belastung des Servers.

Es bleibt noch die Frage zu klären: Was ist schlauer als Redirect 301 oder 302 ? Wie bereits erwähnt, verwenden viele "seriöse" Websites Redirect 302, um die Domain mit www und ohne "beizutreten", und Google akzeptiert sie ebenso gelassen. Aber nicht die Tatsache, dass der Rest der Suchmaschinen das gleiche tun wird. RFC wurde jedoch nicht abgebrochen: der Code "301" bedeutet, dass die Seite dauerhaft verschoben wurde - "permanent verschoben" , der Code ist "302" - die temporäre Bewegung "temporär" , so dass die Verwendung des Codes vom Zweck des Verschiebens der Seite abhängig sein sollte. Es sollte auch verstanden werden, dass viele Browser durch Empfangen der Antwort "301 - permanent bewegt" Lesezeichen automatisch zu einer neuen Seite rekonfigurieren können. Ebenso nicht die Tatsache, dass dasselbe Google zeitnah PR auf die umgeleitete 302-Seite überträgt, wenn man es als "temporär" ansieht, bis beide Seiten "gespiegelt" werden.

Umleitung für verschiedene SE (Suchmaschinen):

Im Allgemeinen wird die Weiterleitung von verschiedenen Suchmaschinen unterschiedlich wahrgenommen. Wenn Sie eine Weiterleitung verwenden möchten, um eine WWW-Version einer Site mit einer Nicht-WWW-Version "zusammenzuführen", müssen Sie die folgenden Bemerkungen beachten.

Wenn auf Ihrer Website einige Links auf www und part wie auf ohne www installiert sind, dann sind Sie wahrscheinlich daran interessiert, die Gewichtung der Links zu beiden Versionen der Website in Bezug auf TIC / PR und Referenz-Ranking zu "kombinieren".

Umleitung für Yandex

Tatsache ist, dass Yandex Links für Sites vereinigt, die er als Spiegel betrachtet, und eine Weiterleitung mit site.ru auf www.site.ru wird den Yandex-Zugriff auf site.ru ausschließen und wird daher nicht als Spiegel mit allen daraus folgenden Konsequenzen betrachtet. Um Yandex zu kleben, sollten beide Site-Namen zugänglich sein (Antwort " 200 OK ") und den gleichen Inhalt haben.

Darüber hinaus müssen Sie die Spiegelung der Hauptwebsite in der Anweisung Host in der Datei Robots.txt definieren, zum Beispiel:

  User-Agent: *
 
Nicht zulassen:

Benutzer-Agent: Yandex
Nicht zulassen:
Gastgeber: www.info.data-com.ru

* Es ist kompetenter, Hostrichtlinien in einem separaten Abschnitt nur für Yandex-Roboter zu machen (es gibt Informationen, dass Google entweder den Abschnitt ignoriert, in dem für sie unverständliche Anweisungen vorliegen, oder es funktioniert nicht richtig);
** Gemäß dem robots.txt-Standard muss mindestens eine "Disallow:" - Direktive in jedem Abschnitt von "User-agent:" vorhanden sein, also gibt es im Beispiel eine "leere" Direktive, die nichts verbietet. Für Ihren Fall notieren Sie Ihre eigenen Einschränkungen, falls vorhanden.

Umleitung für Google

Google versteht Redirect, zumindest lässt sich das an einem aktuellen Artikel von Vanessa Fox im offiziellen Google Sitemaps Blog ablesen. Um diesen interessanten Text nicht zu verlieren, zitiere ich ihn vollständig:

In Google Sitemaps: Weitere Informationen zum Ändern von Domainnamen
Mehr über das Ändern von Domain-Namen
27.01.2006 09:27:00 Uhr
Gepostet von Vanessa Fox, Google Engineering

Kürzlich hat mich jemand gefragt, wie man von einer Domain zur anderen wechselt. Er hatte gelesen, dass Google eine 301-Weiterleitung empfiehlt
Google loslassen. Er fragte sich, ob Google folgen würde
die 301 an die neue Site, sehen Sie, dass es im selben Inhalt enthalten ist wie die Seiten, die bereits von der alten Site indiziert wurden, und
denke, es war doppelte Inhalte (und folglich nicht indexieren). Er fragte sich, ob eine 302 Redirect eine bessere Option wäre.

Weitergeleitet zu genau was er tun sollte. Eine 302-Weiterleitung weist den Googlebot darauf hin, dass die Verschiebung temporär ist
und dass Google die alte Domain weiterhin indexieren sollte. Eine 301-Weiterleitung teilt Googlebot mit, dass der Umzug dauerhaft ist
Google sollte stattdessen mit der Indizierung der neuen Domain beginnen. Der Googlebot wird die neue Website nicht als doppelten Inhalt, sondern als verschoben ansehen
Inhalt. Und genau das will jemand, der Domains wechselt.

Er fragte sich auch, wie lange es dauern würde, bis die neue Website in den Google-Suchergebnissen erscheint. Er dachte, dass eine neue Seite
könnte länger dauern als neue Seiten einer bestehenden Website zu indizieren. Ich sagte ihm, wenn er merke, dass es eine Weile gedauert hat für ein neues
Website zu indizieren, war es in der Regel, weil Googlebot eine Weile gebraucht hat, um etwas über die neue Seite zu erfahren. Googlebot erfährt davon
neue Seiten durch Sitemaps zu crawlen. Wenn Google bereits eine Website kennt,
Es ist auf der gleichen Seite.

Ich habe ihm das gesagt, indem ich Googlebot mit einem 301 von der alten auf die neue Domain umleite und eine Sitemap für
Durch die neue Domain konnte Googlebot viel schneller über die neue Domain erfahren. Er
Er könnte ihre Links aktualisieren.

Die Crawling- und Indizierungsprozesse sind vollständig automatisiert, daher konnte ich ihm nicht genau sagen, wann die Domain starten würde
in den Ergebnissen auftauchen. Es ist jedoch eine wichtige Premiere, Google über die Website (über eine 301-Weiterleitung und eine Sitemap) zu informieren
Schritt in diesem Prozess.

Hier ist die Übersetzung der wichtigsten Teile dieses Textes:

Kürzlich hat mich jemand gefragt, wie man von einer Domain zur anderen wechselt. Er hat gelesen, dass Google die Verwendung von Redirect 301 empfiehlt, um Googlebot über den Umzug zu informieren, aber er war sich nicht sicher, ob er das tun sollte.

Ich sagte ihm, Redirect 301, genau das sollte er tun. Redirect 302 teilt dem Googlebot mit, dass der Umzug zeitlich begrenzt ist und dass Google die alte Domain weiterhin indexieren sollte. Redirect 301 teilt Guglebot mit, dass der Umzug dauerhaft ist und dass Google mit der Indizierung der neuen Domain beginnen sollte. Googlebot rassamtrivat neue Domain nicht als doppelten Inhalt, sondern als verschobenen Inhalt.
. . .
Guglebot lernt neue Seiten für die Indexierung durch Links von anderen Seiten und von Sitemaps.
. . .

Hier ist ein weiteres Snippet aus der Google-Hilfe zum Thema Redirect 301:

Meine URL wurde geändert. Wie kann ich Google dazu bringen, meine neue Website zu indizieren?

Obwohl wir Ihre URL in unseren Suchergebnissen nicht manuell ändern können, gibt es einige Schritte, die Sie ergreifen können, um Ihren Übergang sicherzustellen
ist glatt.
Erstens können Sie Personen auf Ihre neue Website umleiten. Wenn Ihre alten URLs mit HTTP 301 (permanent) auf Ihre neue Website umleiten
Weiterleitungen findet unser Crawler die neuen URLs.
. . .
Google-Angebote basieren auf unserer Fähigkeit, Sie über Links auf anderen Websites zu finden. Um deinen Rang zu bewahren, willst du
um anderen mitzuteilen, die mit Ihnen Kontakt aufnehmen. Eine Möglichkeit, eine Stichprobe von Websites zu finden, die mit Ihrem verlinkt sind, ist
Führen Sie eine Link-Suche durch.

Hier ist die Übersetzung dieses Fragments: -

"Obwohl wir Ihre URL in unseren Suchergebnissen nicht manuell ändern können, gibt es Schritte, die Sie ergreifen können, um den Übergang reibungslos zu gestalten. Sie können Personen zuerst an Ihre neue Domain weiterleiten. Wenn Ihre alten URLs an Ihre neue Domain weitergeleitet werden Mit HTTP 301 entdeckt unser Spider neue URLs ";

"Die Google-Problemlisten basieren teilweise auf der Möglichkeit, die Website über Links von anderen Websites zu finden. Um Ihre Bewertung zu behalten, sollten Sie denjenigen, die sich auf Sie beziehen, mitteilen, dass Sie Ihre Adresse geändert haben."

Und schließlich noch ein wichtiges Teil aus dem "Google Help Center" zu diesem Thema:

Warum hat meine Website zwei verschiedene Einträge in Google: http://site.com und http://www.site.com?

Wenn Ihre Website in unseren Suchergebnissen als zwei verschiedene Einträge erscheint, empfehlen wir Ihnen, diese Einträge zu konsolidieren
Bestimmen Sie den PageRank Ihrer Website genauer. Der einfachste Weg, dies zu tun, besteht darin, Ihre http-URL mithilfe von zu Ihrer www-URL umzuleiten
eine 301 Weiterleitung. Dies sollte die Situation lösen, nachdem unser Crawler die Änderung entdeckt hat.
. . .
Bitte beachten Sie: Verwenden Sie eine robots.txt Datei und unser automatisches URL Entfernungssystem, um nur die http oder www Version Ihres
Website wird nicht funktionieren. Dadurch werden beide Versionen für 180 Tage entfernt und wir können Ihre Site nicht manuell zu unserem Index hinzufügen.

Daraus folgt, dass Google PR-Sites in einem 301-Redirect zusammenführen muss.

Notieren Sie sich die Notiz zum letzten Fragment. Sie können nicht eine Nicht-WWW-Version oder eine WWW-Version aus dem Google-Index löschen - Sie werden beide Versionen sofort für 180 Tage entfernen.

Nachwort

Um die Verklebung der Website durch Yandex und die "Verschmelzung" der TIC zu überprüfen, wurde eine andere Methode angewendet (sie wurde seit März 2006 auf dieser Site eingeführt). Die Website antwortet auf den Namen mit www und ohne www. Die Seiten der Website überprüfen den HTTP_USER_AGENT, der die Seite anfordert, und wenn es sich um einen Yandex-Roboter handelt, erhalten beide Antworten auf den Site-Namen (mit oder ohne www) die Antwort "200 OK" und die Seite selbst. Für alle anderen ist die Website nur unter www.info.data-com.ru verfügbar. Wenn Sie sich an info.data-com.ru wenden, finden Sie Redirect 301 unter www.info.data-com.ru. Die gleiche Technologie baute eine Methode der Tarnung - wenn Suchmaschinen eine Inhaltsseite und Benutzer eine andere zeigen. Cloaking wird von Suchmaschinen bestraft, indem die Seite von ihrem Index ausgeschlossen wird und infolgedessen - von der Ausgabe.

Um die Verbindung von Google PR durch Redirect 301 zu überprüfen, wurde diese seit Februar 2006 auf dieser Site installiert. Wenn RP www.info.data-com.ru und info.data-com.ru ausgerichtet sind, kann diese Tatsache als bestätigt gelten. (Links zu www.info.data-com.ru und info.data-com.ru sind etwa 50 bis 50).

** Wenn Sie sich entscheiden, eine Weiterleitung für Ihre Website zu verwenden - tun Sie die Redirect 301, und nicht 302. Zumindest bis die Situation mit Google 302 Pagejacking klar wird - dieser Artikel ist noch in der Entwicklung.