Wie können wir eine 301-Weiterleitung von über 200 Seiten auf die entsprechenden 200 Seiten am neuen Standort durchführen?

Wie können wir eine 301-Weiterleitung von über 200 Seiten auf die entsprechenden 200 Seiten am neuen Standort durchführen?

Ich brauche Hilfe und zwar schnell.

Wir haben vor Kurzem eine Subdomäne migriert, um sie in die Domäne zu integrieren.

Z. B. https://blog.example.comzuhttps://www.example.com/blog

https://blog.example.comhat eine Menge Verkehr, den wir nicht verlieren wollen. Also müssen wir 301-Weiterleitungen machen.

Das Problem besteht darin, dass https://blog.example.comes über 200 Seiten gibt, die eine gute Leistung aufweisen.

Ich brauche Ratschläge, wie wir alle Seiten auf die entsprechenden Seiten am neuen Standort umleiten können, ohne die Website zu verlangsamen oder den Server zu überlasten.

Wir haben es versucht

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]  
RewriteCond %{HTTP_HOST} ^www.example.com [NC]   
RewriteRule ^(.*)$ https://example.net/$1 [L,R=301,NC]

Aber nur die Startseite wurde umgeleitet

Müssen wir jede dieser Seiten einzeln umleiten?

Antwort1

Wir haben es versucht

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]  
RewriteCond %{HTTP_HOST} ^www.example.com [NC]   
RewriteRule ^(.*)$ https://example.net/$1 [L,R=301,NC]

Sie sagten, Sie hätten „kürzlich eine Subdomäne migriert“, der von Ihnen gepostete Code zielt jedoch nicht auf eine Subdomäne ab und steht im Konflikt mit den Beispiel-Hostnamen, die Sie in der Frage beschrieben haben?

Dadurch wird "nur die Startseite" umgeleitet, wenn Sie sie an der falschen Stelle in der .htaccessDatei platziert haben. Wenn Sie sie beispielsweise platziert habennacheine interne Umschreibung in einen Front-Controller. Diese Umleitung müsste ganz oben in Ihrer Stammdatei erfolgen .htaccess.

ohne die Website zu verlangsamen oder den Server zu überlasten.

200 identische URL-Weiterleitungen sind in Bezug auf Leistung/Overhead unbedeutend. Um jedoch alle Auswirkungen dieser Weiterleitungen vollständig zu minimieren, blogsollte die Subdomäne auf einen anderen Bereich des Dateisystems verweisen, was die Weiterleitung weiter vereinfacht. (Tatsächlich müssen Sie die Subdomäne nicht auf ein bestimmtes Verzeichnis verweisen lassen, sondern können die Weiterleitung direkt in der Serverkonfiguration/im virtuellen Host durchführen, nicht .htaccess.)

RedirectIhre „200 Weiterleitungen“ können dann mit einer einzigen mod_alias- Direktive (in .htaccessoder im Container) ausgeführt werden <VirtualHost>. Beispiel:

Redirect 301 / https://www.example.com/blog/

Die RedirectDirektive ist präfixübereinstimmend und alles nach der Übereinstimmung wird an das Ende der Ziel-URL kopiert. So http(s)://blog.example.com/anythingwird beispielsweise per 301 an umgeleitet https://www.example.com/blog/anything.

Andernfalls, wenn Ihre Subdomain und Hauptdomain auf die gleiche Stelle im Dateisystem zeigen, verwenden Sie mod_rewrite, um den angeforderten Hostnamen zu überprüfen, ähnlich wie Sie es anfangs getan haben (obwohl ich nicht sicher bin, warum Sie nachexample.com oder www.example.comwenn Sie nach der Subdomäne hätten suchen sollen blog.example.com).

Zum Beispiel bei derganz obender Stammdatei .htaccess:

 RewriteEngine On

 RewriteCond %{HTTP_HOST} ^blog\.example\.com [NC]
 RewriteRule (.*) https://www.example.com/$1 [R=301,L]

Das NCFlag ist überflüssig, da der reguläre Ausdruck .*bereits auf alles zutrifft.

Oder verwenden Sie REQUEST_URIstattdessen die Servervariable in der RewriteRuleDirektive und vermeiden Sie die Rückreferenz. Beispiel:

 :
 RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]

Die REQUEST_URIServervariable enthält bereits das Schrägstrichpräfix.

Testen Sie zunächst mit einer 302-Weiterleitung (vorübergehend), um mögliche Cache-Probleme zu vermeiden. Und stellen Sie sicher, dass Sie den Cache Ihres Browsers vor dem Test geleert haben.

verwandte Informationen