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/

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.


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]

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.