Seite 1 von 2

%20 Falsche URLs im Index

Verfasst: 25.09.2006, 12:08
von Gachet01
Hallo,

habe ein großes Problem und zwar hab ich festgestellt, dass ich im index ca. 10000 Seiten habe die mit https://%20www.tld.de beginnen.

%20 steht ja bekanntermassen für eine Space. Zuerst hab ich vermutet, dass ich evtl. in meinem script irgendwo bei der URL Generation einen Space habe, dann stellte ich fest, das hier alles ok ist und das eine Webseite von ausserhalb auf mich mit http:// www.tld.de linkt.
Also ein Space nach //

Ich habe mit meinem Host gesprochen und diesem mitgeteilt, dass solch ein URL aufruf eigentlich einen 404 geben müsste. Dieser teilte mir mit, dass die DNS settings mit *. wildcards gesetzt wurden und das 99.9 % der Hosts so machen.

Das bedeutet ja jetzt, jeder könnte meine seiten schädigen, in dem er Backlinks mit Space zu mir setzt. Was kann ich tun?

Natürlich weiss ich das ich mit der httaccess einiges abfangen kann aber das ist doch eindeutig ein hostproblem. in meiner httaccess hab ich im moment folgendes:

RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.test\.de$ [NC]
RewriteRule ^(.*)$ https://www.test.de/$1 [R=301,L]

So wird die domein ohne www zu www umgeleitet..gibts auch was, das alles was vor dem punkt kommt auf die hauptdomain umleitet?
Bitte um Hilfe.

Frage:

hat meiner Provider recht?
kann ich das prob per httacces lösen?

das z.b. https://test.de auf https://www.test.de geht und alles andere gibt einen 404? denn wenn ich keinen 404 bekomme, bleiben die seiten ja im index :(

probiert es mal selbst aus, eure domain mit %20www.tld.de aufzurufen..es ist erschreckend!

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Re: %20 Falsche URLs im Index

Verfasst: 25.09.2006, 14:21
von haha
Gachet01 hat geschrieben:eine Webseite von ausserhalb auf mich mit http:// www.tld.de linkt.
Also ein Space nach //

Ich habe mit meinem Host gesprochen und diesem mitgeteilt, dass solch ein URL aufruf eigentlich einen 404 geben müsste. Dieser teilte mir mit, dass die DNS settings mit *. wildcards gesetzt wurden und das 99.9 % der Hosts so machen.
* Erstens sind da zwei Parteien im Spiel, einmal der DNS-Server, zusätzlich der Webserver. Zuerst muss der DNS-Server eine IP-Adresse für die Domain liefern, dann muss der Webserver unter dieser IP auch noch Anfragen an die Domain beantworten. Ersteres ist leicht umzusetzen, aber für Letzteres muss man sich je nach Betriebsart des Webservers schon etwas Mühe geben, damit so ein Bockmist dabei rauskommt. Dass es mit dem Leerzeichen so einfach funktioniert, könnte allerdings auf eine Besonderheit des HTTP-Protokolls zurückzuführen sein. Funktioniert denn auch blafasel.example.com?
* Zweitens halte ich die Aussage, um nicht zu sagen Ausrede, 99,9% aller Hosts machen es so, für reichlich gewagt.
* Drittens hat diese Einstellung keinerlei Vorteile, wenn man mal davon absieht, dass sie eventuell für faule und/oder inkompetente Hoster einen Tick bequemer ist.
* Viertens, aber das nur am Rande, kann bei einer nicht existenten Domain kein 404 kommen, sondern nur ein Verbindungsfehler. Der 404 gehört zum HTTP-Protokoll, das wiederum setzt voraus, dass eine Verbindung zustande kommt, was ohne Domain aber schlichtweg nicht möglich ist.
Was kann ich tun?
[…]
aber das ist doch eindeutig ein hostproblem.
Richtig, die Ursache liegt außerhalb Deines Einflussbereiches. Wechsle den Hoster, wenn er Dir einen so simplen Wunsch nicht erfüllen möchte. Der Markt ist breit genug, als dass Du Dich mit so einem Hallodri abgeben müsstest.
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.test\.de$ [NC]
RewriteRule ^(.*)$ https://www.test.de/$1 [R=301,L]

So wird die domein ohne www zu www umgeleitet..gibts auch was, das alles was vor dem punkt kommt auf die hauptdomain umleitet?
Die beiden Zeilen sind nach dem Prinzip "Ist es nicht A, leite nach A weiter" aufgebaut, greifen also bei allem, was nicht der gewünschten Domain entspricht.

Falls es bei Dir nicht funktioniert, liegt es daran, dass da die Zeile "RewriteEngine on" fehlt. Alternativ kann es auch sein, dass das Leerzeichen irgendwo untergeht. In Domains sind Leerzeichen nicht erlaubt, darüber hinaus dient das Leerzeichen als Feldtrenner im HTTP-Protokoll.

So oder so halte ich das für die falsche Vorgehensweise, weil Du damit nur die Symptome auszumerzen versuchst, aber nicht die Ursache beseitigst.

Verfasst: 25.09.2006, 15:16
von Gachet01
Hallo,

vielen dank für die kompetente Antwort. Also blafasel.example.com führt zu confixx. Alles ohne leerzeichen für zu confixx. mmhhh :x

Für die Zeit, in der ich mir den neuen Hoster suche...ist dann der 3te in diesem Jahr, hätte ich gerne eine Weiterleitung bzw. 404. Wenn ich jetzt sofort wechsle, verliere ich ja die Domaingebühr welche jährlich entrichtet wird. Deswegen hab ich mal folgendes probiert, was auch funktioniert. Denn irgendwie muss ich ja jetzt erstmal per 404 oder wie du sagtest per Verbindungsfehler die falschen URLs rausbekommen.

Im Grunde will ich, dass eine die Domain test.de auf www.test.de umgeleitet wird. dies geht hiermit:

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

Nun möchte ich noch, dass alles was nicht aussieht wie www.test.de einen Error bekommt, bzw. einen Verbindungsfehler, damit google diese falschen URLs auch wieder rauswirft. Ist ein Verbindungsfehler für google das gleiche wie ein 404, um die Seiten aus dem Index zu bekommen? Ich habe dies somit gelöst. Ist dies aber richtig? Es funktioniert zwar, d.h. im Firefox, IE zeigt die falschen URLs weiterhin an.

RewriteCond %{HTTP_HOST} !^www\.test\.de$ [NC]
RewriteRule ^(.*)$ - [F]

Vielen Dank!

Verfasst:
von

Verfasst: 26.09.2006, 08:13
von Gachet01
welchen Host würdest du empfehlen haha?

Verfasst: 26.09.2006, 11:49
von haha
Gachet01 hat geschrieben:vielen dank für die kompetente Antwort. Also blafasel.example.com führt zu confixx. Alles ohne leerzeichen für zu confixx. mmhhh :x
Dann ist es so, wie ich leise vermutet hatte: Das Leerzeichen kommt als solches im Webserver nicht an; weil es im HTTP-Protokoll als Trenn- oder Füllzeichen erlaubt ist, hält der Apache " bla.example.com" für "bla.example.com".
Nun möchte ich noch, dass alles was nicht aussieht wie www.test.de einen Error bekommt, bzw. einen Verbindungsfehler, damit google diese falschen URLs auch wieder rauswirft.
Das mit dem Verbindungsfehler habe ich vielleicht nicht ordentlich erklärt. Der Punkt ist, dass für " www" eine IP-Adresse rausgegeben wird, obwohl " www" nicht existiert. Das ist so, als wenn Du im Telefonbuch "Otto Normalverbraucher" findest, obwohl es den Herrn gar nicht gibt. Der Verbindungsfehler, den ich meine, wäre in diesem Spiel, dass es keinen Telefonbucheintrag gibt, Dein bzw. Googles Wunsch nach einem Gespräch mit Herrn Normalverbraucher also schon scheitert, bevor überhaupt der Telefonhörer abgehoben wurde. 40x-Fehler wären hingegen vergleichbar mit der Situation, dass Du eine Nummer anrufst, jemand abhebt (Verbindung ist damit zustande gekommen und in Ordnung) und zu Dir sagt "So einen gibt's hier nicht" (Fehlermeldung des HTTP-Protokolls).

An das Telefonbuch (DNS-Server) kommst Du nicht ran und Dein Hoster könnte zwar, will aber wohl nicht. Insofern ist das Thema Verbindungsfehler für Dich gestorben.
Ist eigentlich erschreckend, wie klein Kundendienst bisweilen geschrieben wird, wenn man bedenkt, dass es hier lediglich darum geht, das Sternchen * gegen die drei Buchstaben www auszutauschen. Andererseits kenne ich die Preise Deines Hosters nicht - billig ist nicht preiswert, und wer billig mietet, bekommt auch billig ;)
Ist ein Verbindungsfehler für google das gleiche wie ein 404, um die Seiten aus dem Index zu bekommen?
Ja.
RewriteCond %{HTTP_HOST} ^test\.de$ [NC]
RewriteRule ^(.*)$ https://www.test.de/$1 [R=301,L]

RewriteCond %{HTTP_HOST} !^www\.test\.de$ [NC]
RewriteRule ^(.*)$ - [F]
Könnte funktionieren, aber die ganze Angelegenheit ist schon in ihren Grundfesten wackelig, würde ich sagen. Wie oben schon angedeutet scheinst Du da in einer Lücke zu hantieren, die so nicht vorgesehen ist. Das würde auch erklären, warum es in Browser A funktioniert, in Browser B aber nicht.
welchen Host würdest du empfehlen haha?
Grundsätzlich würde ich empfehlen, in der Webhostlist mal ein wenig zu stöbern, ein halbes Dutzend Vertrauen erweckende Firmen rauszusuchen und diesen eine Mail mit ein paar technischen Fragen zu schicken. Denk' Dir was Nettes aus, es muss Dich nicht wirklich alles interessieren, aber eine Frage bezüglich Deines aktuellen Problems sollte natürlich auf jeden Fall dabei sein. Wenn Du schon mehrmals den Hoster gewechselt hast, wirst Du sicher auch einige Erfahrungen gesammelt haben, die Du dann geschickt als Beiläufigkeit oder harmlose Frage verpackt abprüfen kannst.
An den Antworten (so denn welche kommen) lässt sich recht gut erkennen, wie die Firmen es mit dem Kundendienst halten und ob es kompetente Ansprechpartner gibt.

Persönlich könnte ich als Hoster eaweb für Einsteiger und Fortgeschrittene empfehlen. Auch wenn ich technisch eher ein Befriedigend geben würde und schon ein paar Jahre weg bin, kann ich berichten, dass die sich wirklich ernsthaft um ihre Kunden bemühen und auch Sonderwünsche erfüllen.
Momentan bin ich bei Terions, habe dort aber einen eigenen Server untergestellt und deshalb mit deren Hostingangeboten nichts zu tun. Für die seltenen Fälle, in denen ich als Housingkunde mal was habe, kann ich den Mitarbeitern aber ohne Zögern hervorragende Qualitäten in Freundlichkeit und Kompetenz bescheinigen.

Verfasst: 26.09.2006, 13:00
von Gachet01
Hallo,

abermals danke für deine Unterstützung. Also mein vorhaben von gestern über die htaccess diesen Fehler unterbinden zu wollen scheitert. Ich hatte nur vermutet das es funktioniert.

Habe nun alles versucht um %20 im domainnamen zu unterbinden, jedoch ist %20 nicht valide und deswegen gibt mir die htaccess auch keinen 403 raus. Es gibt einfach keine Domains mit Space, deswegen gibt php auch keine Alternativen für mich diesen Fehler abzufangen.

Durch deine schöne Erklärung leuchtet mir das ganze jetzt auch etwas ein. Mein Host will glaub ich deswegen den Wildcard * nicht entfernen, weil er dies dann für alle machen müsste, bzw. kunden dann nicht mehr selbst mal schnell über confixx ne subdomain anlegen können oder?

Webmaster ansprechen

Verfasst: 26.09.2006, 13:33
von anarix
Wieso sprichst du nicht den Webmaster der Seite an, welche falsch linkt. Löst zwar nicht irgendein Grundproblem, aber vielleicht hat sich damit dein konkretes Problem schon erledigt, weil der dann einfach nicht mehr falsch auf dich verlinkt...

ich schätze, dann wird das doch sicherlich nach einiger zeit auch aus dem google-index fliegen, weiß aber nicht genau.

Verfasst: 26.09.2006, 13:44
von Gachet01
Hallo anarix,

diese Idee hatte ich natürlich gleich zu Beginn meines Problems.

leider finde ich die Seite nicht welche falsch zu mir linkt.

hab es bereits mit

link: und site: probiert. auch mit yahoo, ich hab aber zuviele Backlinks....wenn jemand eine idee hat, wie ich den webmaster der falsch zu mir linkt finden kann, ich wäre dankbar!

Verfasst: 26.09.2006, 13:46
von haha
Gachet01 hat geschrieben:Mein Host will glaub ich deswegen den Wildcard * nicht entfernen, weil er dies dann für alle machen müsste,

Nein, halte ich für unwahrscheinlich.
bzw. kunden dann nicht mehr selbst mal schnell über confixx ne subdomain anlegen können oder?
Schon eher, aber wenn man schon eine Verwaltungssoftware einsetzt, dann sollte die auch sowohl den Eintrag im DNS- als auch jenen im Webserver zusammen in einem Rutsch regeln. Die momentane Lösung, eine Domain nur im Webserver anzulegen und im DNS-Server das Scheunentor gewissermaßen gleich komplett rauszureissen, finde ich wenig elegant. Aber das ist meine Meinung.
anarix hat geschrieben:Wieso sprichst du nicht den Webmaster der Seite an, welche falsch linkt.
Diese Idee hat etwas für sich, ist für Profis wie uns aber viel zu banal ;)

Verfasst: 26.09.2006, 14:16
von ups
was ist denn, wenn du das ganze mittels php machst?
url auslesen, wenn %20 vor dem www steckt, machst du einen 301 redirect?

keine ahnung obs klappt, aber wäre evtl. einen versuch wert..

gruss, uli

Verfasst: 26.09.2006, 14:45
von Gachet01
Hallo,

wie gesagt, den Webmaster der zu mir linkt finde ich nicht. Die falschen URLs verschwinden dann aus dem Index, wenn die Seiten einen 404 301 oder 403 ergeben..wenn Sie das nicht tun, werden sie wohl noch ne ganze weile im index bleiben. deswegen muss ich das problem erstmal lösen.

Also die htaccess arbeitet nicht mit %20 da nicht valide. aber jetzt wirds mal mit php und hardcoden gemacht..dann per 301 auf die root. regular expressions 0X :crazyeyes:

meld mich nochmal obs klappt...was ein mist, werde den hoster auf jedenfall wechseln :(

Verfasst: 26.09.2006, 14:55
von Gachet01
ok, mit php ist das denke ich nicht möglich denn mit $_SERVER['REQUEST_URI'] bekomme ich ja nur das was längst ausgewählt wurde. Der Fehler entstand vorher...

Ich hab alle environmental values durchsucht aber keiner gibt mir die Full Request URL...mmhhh noch ne idee?

Das Problem, warum google diese URLs überhaupt im Index hat ist, dass Google kein http request macht, sondern einfach auf %20www Anfrage vom DNS die IP bekommt. Das darf nicht sein!

Verfasst: 26.09.2006, 15:56
von ups
mhmm.. und was gibt dir $_SERVER["SERVER_NAME"] zurück?

bei mir auf dem server wird das "https://www" vorne abgeschnitten, lokal läufts wiederum.. einen versuch ist es evtl. wert.

ansonsten habe ich auch keine idee..

gruss, uli

Verfasst: 26.09.2006, 20:38
von haha
Gachet01 hat geschrieben:Ich hab alle environmental values durchsucht aber keiner gibt mir die Full Request URL...mmhhh noch ne idee?
Die komplette URL wird im vom HTTP-Protokoll nicht übermittelt (zumindest nicht in einem Stück).

Den Hostnamen findest Du in einem separaten Feld namens Host, bei PHP taucht es als $_SERVER["HTTP_HOST"] auf. Du wirst aber auch da höchstwahrscheinlich nicht das finden, was Du suchst, denn wie ich schon schrieb, wird das führende Leerzeichen (völlig korrekterweise) vom Webserver abgeschnitten, und PHP bekommt seine Daten vom Webserver.
ups hat geschrieben:mhmm.. und was gibt dir $_SERVER["SERVER_NAME"] zurück?
Das ist AFAIK der Name, der in der Webserverkonfiguration definiert wurde - wird also erst recht nichts.

Um den verursachenden Host zu finden, könntest Du es mit den verweisenden URLs im Zugriffsprotokoll versuchen, weil dort komplett mit http:// und allem drum und dran übermittelt wird. Hast Du Pech, wird von den Browsern auch dort das Leerzeichen gekappt - wenn denn überhaupt jemand über den fehlerhaften Verweis den Weg zu Dir gefunden hat.

Verfasst: 26.09.2006, 22:10
von Mac
@gachet:

Du bist nicht der einzige mit dem Problem, gib mal bei Tante Google

allinurl:"%20www." oder allinurl:"20www."

ein (das Prozentzeichen wird offenbar ignoriert). Das läßt sich mit einem falsch geschriebenen Link wohl eher nicht erklären, da wird irgendeine Software eine Macke haben.

Tauchen die 10.000+ Seiten bei der 'Site'-Abfrage Deiner Domain mit auf? Ich möchte annehmen, daß Google "20www.tld.de" als Subdomain von tld.de behandelt - und damit nach ganz mehrheitlicher Auffassung hier im Forum suma-technisch als eigenständige Domain. Die hätte dann zwar vermutlich denselben Inhalt wie Deine richtigen Seiten, aber die dürften ja wohl deutlich besser verlinkt sein, so daß allein die falschen Seiten das DC-Problem kriegen sollten.

Gruß,
Mac