Meine Firma hat dies gerade mit mehreren größeren Websites getan. Das grundlegende Verfahren, das wir befolgten, war:
- Verringern Sie die TTL der Domain so weit wie möglich. Tun Sie dies im Voraus mindestens so lange wie die aktuelle TTL.
- Richten Sie die Website auf dem neuen Server genau so ein, wie Sie das "Endprodukt" haben möchten
- Fügen Sie der Site auf dem neuen Server einen Aliasnamen hinzu, z. B. www2.domain.com oder www-new.domain.com. Mit Apache würden Sie die ServerAlias- Direktive verwenden. Wenn die Site überhaupt über dynamischen Code verfügt (PHP, mod_perl, RubyOnRails usw.), stellen Sie sicher, dass sich die Site verhält und mit diesem neuen Namen korrekt reagiert.
- Richten Sie zur Umstellungszeit eine Umleitung auf dem alten Server ein, die auf den neuen Server verweist
- Ändern Sie DNS für www, um zur neuen IP zu gelangen.
Für Apache sollten Sie wahrscheinlich mod_rewrite für die Umleitung verwenden, damit Sie die vom Client angeforderten URIs beibehalten können. Eine einfache Implementierung wäre:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www-new.domain.com$1 [L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
ServerAlias www-new.domain.com
</VirtualHost>
Dadurch wird eine vorübergehende 302-Umleitung für www.domain.com/anything zu www-new.domain.com/anything durchgeführt. Sie möchten, dass es nur vorübergehend ist, da Suchmaschinen wahrscheinlich nur www.domain.com und nicht www-new.domain.com indizieren sollen.
Sobald sich die DNS-Änderung für www.domain.com zu Ihrer Zufriedenheit verbreitet hat, können Sie entweder www-new insgesamt sichern oder jeden, der sie verwendet, mit einer anderen Weiterleitung sanft auf www zurücksetzen. Es ist fast der gleiche Prozess wie oben; Richten Sie den alten Server für die Verarbeitung von www-new ein, ändern Sie DNS für www-new so, dass er auf den alten Server verweist, und richten Sie eine Umleitung auf dem alten Server ein, die www-new-Datenverkehr an www sendet:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www-new.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
# ServerAlias removed, no longer needed
</VirtualHost>
Dieses Mal möchten Sie eine permanente 301-Weiterleitung durchführen, um in Suchmaschinen-Crawlern erneut darauf hinzuweisen, dass www.domain.com die Site ist, die sie indizieren sollen.