So leiten Sie Wordpress-Beiträge mit 301 um

7

Alle meine WordPress-Post-URLs generieren Unterverzeichnisse mit doppeltem Inhalt, und ich weiß nicht, welchen regulären Ausdruck ich verwenden soll, um konsistent domain.com/category/post/random-number/zu domain.com/category/post/und domain.com/category/post/random-number/another-random-number/auch zu umzuleiten domain.com/category/post/.

Hier ist ein Beispiel für mein Problem:

  • http://www.example.com/features/harb-constitution-not-to-allow-kr-provinces-to-receive-foreign-officials/
  • http://www.example.com/features/harb-constitution-not-to-allow-kr-provinces-to-receive-foreign-officials/1345257927000/
John K.
quelle
3
Möglicherweise wäre die einfachste Lösung hier die Verwendung von rel="canonical": support.google.com/webmasters/bin/… ; googlewebmastercentral.blogspot.co.uk/2009/02/… ; Die Umleitungslösung funktioniert möglicherweise auch (nur generischer Regex), aber da es sich um generischen Regex handelt, kann es zu Fehlalarmen kommen. Die beste Lösung wäre daher, nicht auf .htaccess-Ebene, sondern im tatsächlichen PHP-Code umzuleiten, wenn die richtige URL sicher bekannt ist (vergleichen Sie die tatsächliche URL mit der erwarteten und wenn sie sich von der Umleitung unterscheiden - genau der gleiche Ansatz, der hier verwendet wird Seite? ˅).
LazyOne

Antworten:

2

Zuerst würde ich Ihre URL-Einstellungen (unter "Permalinks") überprüfen, um zu sehen, warum diese URLs überhaupt erstellt werden. Ich glaube nicht, dass sie standardmäßig sind. Im Idealfall können Sie dies einfach verhindern.

Zweitens: Bietet Ihre Website Links zu diesen unerwünschten Duplikaten? Wenn ja, würde ich raten, dies zu verhindern. Wenn sie nicht verlinkt sind, sollten Benutzer und Suchmaschinen niemals zu einer kommen.

GDav
quelle
0

Wenn die URLs immer eine "echte" Ordnertiefe von 2 haben, sollte dies funktionieren. Es heißt im Grunde: "Finde ein Muster eines oder mehrerer Zeichen, die KEIN Schrägstrich sind, gefolgt von einem Schrägstrich, der zweimal wiederholt wird." (. *) entspricht allen Zeichen, die nach dem 2. Schrägstrich kommen (der zufällige Mist, den Sie wegwerfen möchten)

RewriteRule ^([^/]+/){2}(.*)$ http://www.example.com/$1 [R=301,NC,L]
WebChemist
quelle
0

Ich empfehle Ihnen, Ihre Weiterleitungen über den Umleitungsbereich des Control Panels hinzuzufügen (jedes Control Panel verfügt über diesen Abschnitt für alle Arten von Domänen) oder einfach den .htaccess-Konfigurator über den Link zu verwenden. Geben Sie hier die Linkbeschreibung ein

BobanZ
quelle