Manchmal sind die Lösungen für Probleme so nah, daß einen erst andere darauf stoßen müssen. So auch beim Problem mit den Feed-URL’s in Suchmaschinen: Es ging darum, daß Besucher in Suchmaschinen auch die dort vorhandenen Feed-URL’s anklicken könn(t)en und dann im XML des Feeds “landen”.
Auf die Lösung über das mod_rewrite per .htaccess - was ja eigentlich nahe liegt in solchen Fällen - haben mich Robert und Jörg mit ihren Beiträgen zum Bilderklau gebracht: Jörg hat das Problem, daß sein Porträt auf einer anderen Webseite benutzt wird und Robert berichtet über jemanden, der einfach das Bild, was von seinem Server direkt in eine fremde Seite eingebaut wurde, ausgetauscht hat. Ist übrigens ‘ne tolle Geschichte, die man unbedingt lesen sollte.
Genug der Vorrede hier nun die Einträge für die .htaccess:
RewriteCond %{HTTP_REFERER} ^http://www.google.(de|ch|at|com)/search(.*)$ [OR]
RewriteCond %{HTTP_REFERER} ^http://brisbane.t-online.(.*)$
RewriteRule ^feed/(feed|rdf|rss|rss2|atom){0,1}/?$ http://www.im-web-gefunden.de/ [L,R=307]
RewriteCond %{HTTP_REFERER} ^http://www.google.(de|ch|at|com)/search(.*)$ [OR]
RewriteCond %{HTTP_REFERER} ^http://brisbane.t-online.(.*)$
RewriteRule ^(.*/)feed/(feed|rdf|rss|rss2|atom){0,1}/?$ http://www.im-web-gefunden.de/$1 [L,R=307]
Kurze Erläuterung
Die RewriteCond prüft, ob der Aufruf über die Suche von google.de, google.ch, google.at, google.com oder T-ONLINE kommt und ist in beiden Fällen gleich. Die erste RewriteRule wirkt nur, wenn eine der Feed-URL’s der Startseite des Blogs aufgerufen wird. Die zweite RewriteRule greift beim Aufruf von Feed-URL’s eines einzelnen Postings. In beiden Fällen erfolgt eine Umleitung - entweder auf die Startseite des Blogs oder auf die Seite des Einzelpostings. Dazu wird der Return-Code 307 [Temporary Redirect] benutzt, da ja nur für diesen Feed-Aufruf auf eine andere URL umgelenkt wird:
The requested resource resides temporarily under a different URI. Since the redirection MAY be altered on occasion, the client SHOULD continue to use the Request-URI for future requests. This response is only cacheable if indicated by a Cache-Control or Expires header field.
Der ResponseCode 302 [Found] wäre genau so möglich - aber die 307 läßt sich leichter im Logfile finden. 301 [Moved Permanently], würde ich nicht nehmen, da der Feed ja weiterhin existiert und nur aus dieser Suche heraus nicht aufgerufen werden soll.

am 27.12.2005 um 12:01 Uhr:
[…] mir passiert es letzte Zeit immer häufiger, daß ich bei Google-Suchergebnissen Links auf meine “ArtikelURL/Feed” entdecke. Das nervt, da der Leser damit natürlich nix anfangen kann, wenn er dort landet. Eine mögliche Lösung (per mod rewrite) hat nun Thomas von im web gefunden aufgezeigt. […]
am 27.12.2005 um 12:48 Uhr:
307 ist ja eher ungewöhnlich, aber da 302 z.b. google probleme bei der richtigen zuordnung bereitet könnte das ein geschickter schachzug sein
am 27.12.2005 um 13:12 Uhr:
Redirect 301 führt zudem dazu, dass Google den Eintrag vom Feed im Index entfernt.
am 27.12.2005 um 14:03 Uhr:
Ich habe n bißchen über den Returncode gegrübelt - aber eigentlich sollte er fast egal sein, da Google eigentlich nichts davon mitbekommen sollte: Erstens erfolgt die Antwort nur an den Browser des Benutzers und zweitens greifen beide Rewrites nur, wenn sie von /search* - also den Suchergebnissen - bei Google aus aufgerufen werden. Der GoogleBot selbst kommt aber nie über /search* - jedenfalls habe ich das noch nie gesehen. Allerdings wollte ich trotzdem ganz sicher gehen und habe deshalb die 307 genommen: Sie paßt vom Kontext und ist leicht im Blick zu halten in den Logfiles.
Die Trackbacks sind übrigens auch in den Suchergebnissen - allerdings macht Wordpress da das “Forwarding” selbst. Um sie wegzubekommen könnte man ja mal mit rel=”nofollow” arbeiten, oder ist das übertrieben?
am 19.01.2006 um 23:16 Uhr:
na cool, hier gibts ja interessante Sachen - Kompliment, bin schon länger nicht mehr so lange in einem Blog hängengeblieben
)
Habe gerade mal versucht obige Einträge in die .htaccess zu übernehmen, funktioniert bei mir leider nur für die zweite RewriteRule (das finde ich aber schon mal sehr cool), daher habe ich die erste RewriteRule erstmal weggelassen.
Kannst Du mir eventuell nen Tipp geben woran es liegen könnte, daß die erste RewriteRule bei mir nicht funzt?
Leider kenne ich mich mit der .htaccess nicht weiter aus - und der Progi von mir der es evtl. könnte, ist leider bis Ende Februar in Indien
am 19.01.2006 um 23:44 Uhr:
@Frank: Danke für ie Blumen
Bekommst Du bei der ersten ‘ne Fehlermeldung (a la 500)? Wenn die zweite geht müßte die erste auch gehen. Es gibt allerdings bestimmte vhost-Umgebungen, bei denen explizit noch
Basegesetzt werden muß. Ich habe Kunden bei 1und1, wo man es so setzen muß. Gleiches wäre wenn Wp in einem Subdir drinne ist - da macht es sich auch immer besser gleich nach demRewriteEngine Ondas oder dieBasezu setzen. In anderes Problem könnte sein, daß die Rule mit^\/beginnen muß - das ist zwar unwahrscheinlich - ist aber bei bestimmten Konfigurationen notwendig. Als Beispiele kannst Du die Permalink-Einträge von Wp benutzen: Sie zeigen Dir wie die Struktur ist.Wenn das alles nicht hilft - dann schick’ mir ‘ne Mail - Adresse über Impressum und dann weiter über den Link.
am 24.01.2006 um 00:00 Uhr:
Hallo!
Ich habe mindestens das gleiche Problem wie Frank, die erste Umleitung klappt nicht, zweite konnte ich noch nicht testen, da ich keinen Link bei Google auf einen Artikel bei mir finde (Blog ist noch ziemlich neu)…
Ich bekomme keine Fehlermeldung, und werde einfach auf die feed-Seite geleitet. Das ganze läuft auf dem Server von 1&1 Frankreich, weiß nicht ob die genauso sind wie in Dt. Ach ja, und außerdem liegt der Blog nicht auf der Hauptdomain, sondern auf http://www.christine.oppe.info/blog, die .htaccess liegt im Hauptverzeichnis von WP (also im Ordner blog).
Was meinst du mit Base setzen? Wie und wo mache ich das?
Kannst du mir da eventuell helfen?
Vielen Dank und viele Grüße,
Christine
am 24.01.2006 um 00:28 Uhr:
@Christine: Es hat leider etwas länger gedauert mit der Antwort
[um 23:00 Uhr rum].
Die Base wird ebenfalls in der
.htaccessgesetzt. Die obigen Regeln müssen am Anfang der Datei stehen - also gleich nach demRewriteEngine Onund dem Teil der die Domain eindeutig entweder auf www.christine.oppe.info oder christine.oppe.info setzt. Auf alle Fälle vor dem Permalink-Teil, den Wordpress schreibt. Eine Base würde in Deinem Falle nicht helfen - es sei denn Du benutzt eine separate.htaccessin Deinem Blog-Verzeichnis. Dann benötigst Du zwingend denBase-Eintrag, der in Deinem Falle dann lauten würde:Base /blog
Aber wie gesagt: Nur in der .htaccess im Blogverzeichnis. Ich habe heute mal mit der Methode nach “Webserver in a Nutshell (II) - Wie simuliere ich Treffer von fremden Webseiten oder aus Suchmaschinen” nachgesehen - es funktioniert bei Dir noch nicht richtig. Die Versuche solltest Du in Deinem Logfile leicht finden können
Falls Du es nicht hinbekommst - hinterlasse einfach ‘ne kurze Info hier - ich mail Dich dann an.
Thomas
am 24.01.2006 um 19:07 Uhr:
Hi Thomas,
Danke für die Hilfestellung - kam erst heute dazu Deine Vorschläge auszuprobieren, klappte leider mit keiner der getesteten Variationen, bekomme auch nie keine Fehlermeldung und lande normal auf dem Feed obwohl WP im Root installiert ist und ich nicht bei 1&1 (bin bei planet-hosting.de) bin …;-(
Vielleicht habe ich aber auch einfach eine falsche Vorstellung davon, was eine Feed-URL der Startseite ist? Auf “Nummer sicher”: ich habe seo-marketing-blog.de/feed/ als Stratseiten-Feed verstanden, mit dem gehts leider nicht, obwohl Deine Lösung auch genau der Struktur meiner WP-Permalink-Einträge entspricht.
So, jetzt wollte ich gerade noch auf die Schnelle und ebenfalls “auf Nummer sicher” nochmal schauen, was eigentlich im blöden IE passiert (nutze immer Firefox) bevor ich den Kommentr absende und siehe da, auf einmal gehts auch mit dem Startseiten-Feed …;-) Scheint sich also, zumindest bei mir, um ein Firefox-Einstellungs-Problemchen zu handeln und Dein Code funktioniert prima - Danke nochmal, schon wieder ne Menge dazu gelernt, da ich mich erstmal zu “das oder die Base” informiert habe, bevor ich es damit testen konnte!
bis denne
Frank
am 24.01.2006 um 19:49 Uhr:
[…] Die Anregung für diesen Artikel kam von Christine, die in ihrem Kommentar zu “FEED-URL-Aufrufe aus Suchmaschinen umleiten “beklagt, daß sie noch nicht die “passenden Einträge” bei Google hat. […]
am 21.03.2006 um 11:39 Uhr:
[…] Bueltge.de zeigt auf, wie man fehlgeleiteten Besucher (über Suchmaschinen), die im RSS Feed landen, dennoch einigermaßen etwas Lesbares zeigen kann: WP - RSSFeed mit CSS gestalten. Nun mag man gerne darauf hinweisen, daß man doch per .htaccess den Leser umleiten kann. Ja und nein. Ich könnte mir vorstellen, daß mehr Leser aus Unwissenheit direkt auf den RSS Link klicken als per Google und Co. hineinzutappsen. Leitet man per htaccess weiter, wird sich der Leser noch mehr wundern, weil da Null passiert. Lieber informieren, daß man im RSS Feed gelandet ist: Um dann den Leser aufs Blog zu schicken oder aber - steter Tropfen höhlt den Stein - auf die Möglichkeit hinzuweisen, daß man einen RSS Feed wunderbar abonnieren kann. Und genau da gefällt mir dieser CSS-Ansatz von Bueltge.de: rss:before { content:”0BB Sie befinden sich auf einem RSS-NewsFeed, nicht auf der Website. Bitte besuchen Sie die Website www.bueltge.de”; font-size: 2em; color: red; margin: 10px; } […]
am 06.09.2006 um 16:59 Uhr:
[…] Nähere Informationen dazu findet ihr in dem Beitrag “Feed-URL-Aufrufe aus Suchmaschinen umleiten” im “Im-Web-gefunden” Blog. […]
am 17.07.2007 um 10:34 Uhr:
[…] Einen anderen Weg hat Thomas gewählt. Er leitet Besucher die über die Google Suche kommen direkt auf den Original-Artikel um. Es stellt sich jedoch die Frage ob dies von Google toleriert wird man man argumentieren könnte, dass der Feed als Landingpage genutzt wird und die Besucher dann weitergeleitet werden. Ähnlicher Doorway Spam hat ja auch schon BMW zu schaffen gemacht. […]