Umleitung bei ausschließlicher Angabe der post_id in der URL auf den vollen WordPress-Permalink mittels Nginx

Ich poste mittels Twitpress meine Einträge auf Twitter, wobei ich die URL zum Eintrag mittels der ID des Posts, also im Fall dieses Posts 3385, angebe. Dies sieht dann so aus:

Neuer Blog-Eintrag: Umleitung bei ausschließlicher Angabe der post_id in der URL auf den vollen WordPress-Permalink mittels Nginx https://wolf-u.li/3385/

Früher wurde dann per WordPress auf die volle URL umgeleitet, jedoch funktioniert dies in der Version 2.9.2, die ich momentan fahre, nicht mehr so. Das führte dazu, dass unter https://wolf-u.li/3385/ und der langen Url des Beitrags der gleiche Inhalt angezeigt wurde, was zu Problemen mit den Suchmaschinen führen kann. Da ich keinen Bock hatte, mich bei mir auf Fehlersuche zu begeben, habe ich kurz gegoogled und festgestellt, dass dies für Version 3.1 von WordPress wiedergeplant ist. Ein wenig Recherche brachte an den Tag, dass man auch manuell per .htaccess (bei Nutzung von Apache) auf index.php?p={POST_ID} umleiten kann.

Werbung

Dieser Artikel ist Teil einer Reihe zum Webserver nginx.
Schau dir auch die anderen Artikel an: Zum Leitartikel

Da ich den Webserver Nginx einsetze, habe ich also nun einfach eine Prüfung geschrieben, die nachsieht, ob nach wolf-u.li/ einfach nur eine Zahl folgt und in diesem Fall auf die index.php leitet, welche dann auf die korrekte lange URL leitet. Die komplette Location könnte also so aussehen:

location / {
    if (-f $request_filename) {
        break;
    }
    rewrite ^/([0-9]+)/$ /index.php?p=$1 last;
    rewrite ^(.+)$ /index.php last;
}

Zuerst wird geprüft, ob der angeforderte Dateiname vorhanden ist. Wenn dem der Fall ist, werden keine weiteren Prüfungen durchgeführt und diese Datei zurückgegeben. Wenn nicht, wird zunächst die oben beschriebene Prüfung durchgeführt. Wurde kein Match ermittelt, so wird einfach nur auf index.php umgeleitet.

Das behob bei mir das Problem des doppelten Contents 😉

Veröffentlicht von

Uli

IT-Nerd und Admin

4 Gedanken zu „Umleitung bei ausschließlicher Angabe der post_id in der URL auf den vollen WordPress-Permalink mittels Nginx“

  1. So mich würde jetzt einmal brennend interessieren ob auch bei dir twitpress automatisch alte tweets löscht. Bei mir hab ich festgestellt das es auf meinem twitter Account ältere tweets einfach löscht. Die Löschung von tweets erfolgt aber nicht nach einer bestimmten Zeit oder einem Datum, sondern mir löscht es immer den 16. oder 17. tweet. Ich weiß aber genau, das es am Anfang so nicht war.

    1. Ich würde eher meinen, dass diese, alten Posts, durch Twitter nicht mehr angezeigt werden, aber ich konnte das Phänomen bei mir noch nicht sehen… sorry

      1. Danke für die schnelle Antwort. Vielleicht liegt es auch den der WordPress Verion 2.8, denn ich hab noch zwei weitere Blogs die mit der Version 2.5 oder 2.6 am laufen und dort werden die älteren Tweets nicht gelöscht. Ich tüftle einfach mal weiter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.