Seite 1 von 1

Andauernder 301er schädlich?

Verfasst: 13.10.2005, 20:37
von ehrlacher
Hi,
ich habe ein Script auf der Seite, dass falsche Query Strings abfängt und umleitet:
if ($_SERVER['QUERY_STRING']<>"")
{header("HTTP/1.1 301 Moved Permanently");
header('Location: '.$_SERVER['QUERY_STRING']);
exit;}

Dummerweise sendet die Seite jetzt den 301er IMMER, auch wenn der Query_String leer ist (Nebenfrage: Hat einer eine Idee, warum?)

Aber meine eigentliche Frage:
Wie reagiert Google darauf, wenn es von der Titelseite (es handelt sich nämlich um die Titelseite) tage- und wochenlang einen 301er bekommt...?

Danke
Frank

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 13.10.2005, 21:24
von jensjk
habe die gleiche Frage, da Ajax auch immer ein 301 sendet, der auf die gleiche Seite zeigt.

[edit]erledigt, der 301 war hausgemacht[/edit]

Andauernder 301er schädlich?

Verfasst: 13.10.2005, 22:50
von Babelfisch
Irgendwie ergibt das keinen wirklichen Sinn, was du da machst.

Wenn du bei einem nicht leeren Query-String auf die gleiche Seite ohne Query-String umleiten willst, würde das in etwa so aussehen:

Code: Alles auswählen

if &#40;!empty&#40;$_SERVER&#91;'QUERY_STRING'&#93;&#41;&#41; &#123;

  header&#40;'HTTP/1.1 301 Moved Permanently'&#41;;
  header&#40;'Location&#58; http&#58;//'.$_SERVER&#91;'HTTP_HOST'&#93;.$_SERVER&#91;'REQUEST_URI'&#93;&#41;;

  exit;

&#125;
Allerdings ist mir nicht ganz klar, ob du das jetzt wirklich so wolltest.

Verfasst: 14.10.2005, 11:13
von ehrlacher
Ja, genau das will ich - Danke!

Aber - auch wenn das jetzt ein kleines bisschen OffTopic ist - kannst Du mir erklären, wo der Unterschied zwischen
if (!empty($_SERVER['QUERY_STRING']))
und
if ($_SERVER['QUERY_STRING']<>"")
ist ?
(Und wieso das eine "richtig" funktioniert und das andere wohl nicht ...?

Danke!
Frank

Andauernder 301er schädlich?

Verfasst: 14.10.2005, 11:21
von Babelfisch
empty() liefert FALSE, wenn $_SERVER['QUERY_STRING'] nicht existiert, '' oder 0 ist. Vergleichbar ist es in etwa mit dem Konstrukt:

Code: Alles auswählen

if &#40;isset&#40;$_SERVER&#91;'QUERY_STRING'&#93;&#41; && &#40;$_SERVER&#91;'QUERY_STRING'&#93; != ''&#41;&#41; &#123; ... &#125;
Also != statt <>