forcetype - Seiten unter mehreren URLs erreichbar
jörg
- sonstiges
Morgen Selfer,
ich verwende die forctype Methode, um die Datei
http://example.com/datei
als PHP auszugeben.
Es gibt nun eine Tabelle, in der sind die Seiten mit NestedSets und ihrem "URL-Name" (also dem Name unter "datei" zu finden).
So ist in der Tabelle zum Beispiel ein Eintrag 1/4/kategorie
der also unter http://example.com/datei/kategorie zu erreichen ist.
Des weiteren existiert ein Untereintrag zu dieser Kategorie 2/2/artikel,
der also unter http://example.com/datei/kategorie/artikel zu erreichen ist.
Um diese entsprechend auszugeben wird in "datei" von der Server-Request_URI Variable der RootPath, also /datei vorne weggenommen und das Ergebnis an / exploded.
Diese Einträge gehe ich nun von vorne her durch (also kategorie, artikel) und prüfe sie auf ihre Existenz in der Tabelle um doppelte URIs für den selben Inhalt zu verwmeiden.
Aber beim doppelten Inhalt stellt sich mir die Frage, soll artikel nur unter artikel oder auch mit / am Ende also artikel/ erreichbar sein? Jeweils das andere dann mit dem header umleiten?
Das selbe mit der Startseite, diese wäre unter datei und datei/ erreichbar.
Des Weiteren bin ich am überlegen, in der Tabelle einen Flag zu hinterlegen, der es mir erlaubt, dass eine Seite selbt "Parameter" mit / abgetrennt an der URL verwalten kann. Sprich ist bei artikel2 dieser Flag gesetzt, würde http://example.com/datei/kategorie/artikel2/parameter1/parameter2 artikel2 mit den Parametern 1 und 2 öffnen.
Hier wäre natürlich der Inhalt auch wieder unter meherer URIs erreichbar, weil jemand die Parameter ja belibieg setzten könnte.
Vielleicht hat mir jemand einen Denkanstoß
Gruß
P.S.: mod_rewrite steht mir leider nicht zur Verfügung
Hallo,
hat von euch jeder mod_rewrite zur Verfügung und ihr müsst es nicht mit forcetype lösen?
Oder kann mir keiner helfen, was "best practice" ist um doppelten Inhalt zu vermeiden? Oder zählt / nicht als doppelte erreichbarkeit?
Gruß
Hallo,
letzendlich stellt sich ja nur die Frage, ob es als doppelter Inhalt gilt, wenn eine Seite unter link und link/ und link/parameter erreichbar ist.
Ob ich also das verhindern sollte und entsprechend mit header('Location:') abhilfe schaffen muss oder nicht.
Gruß
letzendlich stellt sich ja nur die Frage, ob es als doppelter Inhalt gilt, wenn eine Seite unter link und link/ und link/parameter erreichbar ist.
Hat Google jemanden standrechtlich erschossen, weil der Content unter
http://example.org
http://example.org/
http://example.org/index.php
erreichbar war
Du bist es doch, der url publiziert. Schau also, dass du ausser bei der domain auf das end/ verzichtest, da ja doch kein directory vorhanden ist und auch keine index.xyz unter end/ verfügbar ist.
Ob ich also das verhindern sollte und entsprechend mit header('Location:') abhilfe schaffen muss oder nicht.
Da bräuchtest du schon einen redirect permanent.
mfg Beat
Hallo,
es geht ja nicht um Google und erschißene, sondern einfach darum, was denn generell als Content, der doppelt erreichbar ist.
Außerdem könnte beispielseite, wenn sie 2 parameter erfordert bei mir unter zicktauenden Adressen verfügbar sein.
http://example.com/kategorie/beispielseite/parameter1/parameter2
http://example.com/kategorie/beispielseite/parameter3/parameter4
http://example.com/kategorie/beispielseite/parameter5/parameter6
http://example.com/kategorie/beispielseite/invalider_parameter/blabb
Die Parameter hier würden nämlich erst in beispielseite geprüft werden und eine Seite alla "OOps" ausgegeben. So wäre besiepielseite quasi unter unendlichen Adresse erreichbar.
Gruß
Die Parameter hier würden nämlich erst in beispielseite geprüft werden und eine Seite alla "OOps" ausgegeben. So wäre besiepielseite quasi unter unendlichen Adresse erreichbar.
Dann belasse sie als Parameter par=val und zwänge sie nicht in eine Form von Pseudo-Pfaden. Wenn du den Unterschied zwischen Pfad und Parameter auflöst, schaffst du dir nur Probleme.
Dagegen dass jemand falsch Url-Pfade oder Queries mit Bogus Parametern eingibt, kannst du eh nichts machen.
Dein Hauptscript kann allenfalls prüfen welche Kategorie/Beispielseite vorhanden ist, bevor es das zuständige Script aufruft.
mfg Beat
Hallo,
aber warum lösen dann so viele diesen Unterschied zwischen Pfad und Parameter auf um "sprechende" URLs zu erhaltenß
Außerdem, wenn man es genau nimmt, wäre meine Seite mit par=val genauso unter unendlich vielen Seiten erreichbar
http://example.com/seite?par=val&unendliches_kann_hier_stehen
Gruß
echo $begrüßung;
aber warum lösen dann so viele diesen Unterschied zwischen Pfad und Parameter auf um "sprechende" URLs zu erhaltenß
Weil sie von PHP unterstützt den Querystring einfacher auswerten können und diese Vorgehensweise zu Hauf vorfinden. Den Pfad in Weg zur Anwendung und Parameter aufzuteilen und dann die Parameter zu vereinzeln ist deutlich aufwendiger (jedenfalls im Vergleich zum $_GET-Zugriff).
echo "$verabschiedung $name";
aber warum lösen dann so viele diesen Unterschied zwischen Pfad und Parameter auf um "sprechende" URLs zu erhaltenß
Weil sie mod_rewrite haben?
Weil es gut aussieht?
Weil "man" es macht, egal was für Nebenwirkungen es hat?
Außerdem, wenn man es genau nimmt, wäre meine Seite mit par=val genauso unter unendlich vielen Seiten erreichbar
http://example.com/seite?par=val&unendliches_kann_hier_stehen
Ja aber es ist bedeutend klarer, wie man mit Bots umgehen kann.
Viele bots indexieren keine Queries. Einige (Yahoo) schneiden alles nach der erste Kombo ab. MSN und Google nehmen alles.
MSN und Yohoo kann ich aber über robots.txt steuern.
Ich will dich sehen, wenn Bots deinen unendlichen Pfadraum auffressen.
mfg Beat
Hallo,
Weil sie mod_rewrite haben?
Weil es gut aussieht?
Weil "man" es macht, egal was für Nebenwirkungen es hat?
aber selbst mit mod_rewrite würde nehmen wir mal das Beispiel jegliches
http://example.com/eins/zwei
Aus index.php?par1=eins&var2=zwei
geführt werden.
Hier wäre dann auch immer eine Oops-Seite unter unendlichen Pfaden zu finden.
Die Anzahl der Parameter und einen 404 könnte ich ja bei meiner forcetype-Methode und der Oops-Seite bauen.
Gruß
aber selbst mit mod_rewrite würde nehmen wir mal das Beispiel jegliches
http://example.com/eins/zwei
Aus index.php?par1=eins&var2=zwei
geführt werden.
Hier wäre dann auch immer eine Oops-Seite unter unendlichen Pfaden zu finden.
Frage: Wenn ein Robot eine URL mit Query oder eine Url mit deinen Pseudo-Pfaden indexiert, was nützt dir die OOPs seite.
Du musst dem Robot mitteilen dass die Seite nicht verfügbar ist.
Status 410.
Oder du leitest ihn permanent auf einen übergeordneten Punkt um
Status 301 moved permanently.
Status 301 kannst du senden, bei 410 habe ich aber meine Zweifel. (kommt darauf an ob PHP als CGI oder als Modul, bei Perl geht's definitiv nicht.)
Die Anzahl der Parameter und einen 404 könnte ich ja bei meiner forcetype-Methode und der Oops-Seite bauen.
Status 404 ist zuwenig.
Entscheidend ist, dass Suchrobots den unendlichen Adressraum nicht zu sehen bekommen, sondern die nur die wesentlichen Einstiegspunkte.
Dazu gibt es auch positive Angebote wie <link type=bookmark>
Hallo,
Frage: Wenn ein Robot eine URL mit Query oder eine Url mit deinen Pseudo-Pfaden indexiert, was nützt dir die OOPs seite.
Du musst dem Robot mitteilen dass die Seite nicht verfügbar ist.
Status 410.
Oder du leitest ihn permanent auf einen übergeordneten Punkt um
Status 301 moved permanently.
Status 301 kannst du senden, bei 410 habe ich aber meine Zweifel. (kommt darauf an ob PHP als CGI oder als Modul, bei Perl geht's definitiv nicht.)
aber soweit ist es egal, ob ich es mit forcetype oder mod_reqrite Regel. Ich muss die Aufgerufene Seite in jedem Fall auf ihre wirkliche (am besten einmalige) Existenz prüfen und dann entweder die Seite anzeigen, oder falls möglich mit 301 auf die richtige Seite leiten oder eben 410 und "Oops meinten Sie vielleicht"
Entscheidend ist, dass Suchrobots den unendlichen Adressraum nicht zu sehen bekommen, sondern die nur die wesentlichen Einstiegspunkte.
Dazu gibt es auch positive Angebote wie <link type=bookmark>
Sie bekommen von mir garnicht solche unendlichen Adressräume zu sehen, aber Sie würden nunmal existieren, wenn ich nicht prüfen würde und gegebenenfalls die 404-Oops-Seite anzeigen würde.
Was, wie, wo meinst du mit <link type bookmark>?
Gruß
Was, wie, wo meinst du mit <link type bookmark>?
Sollte <link rel="bookmark"> heissen.
mfg Beat