Redirect immer ins root

Hallo

Ich möchte mit htaccess ein redirect schalten, dass immer auf mein root-Verzeichnis führt (index.html).

Dies ist nötig, da die Verzeichnisstruktur meiner alten Seite nicht übereinstimmt mit der neuen und somit einzelne Umleitungen mit 301 ins Leere gehen.

Wenn also jemand auf einen bestimmten link klickt, soll er immer am selben Ort landen. Zum Beispiel:

portalpb.bplaced.net (index.html)

oder

portalpb.bplaced.net (index.html)

Wie mach ich das am einfachsten?

Formuliere die Frage bitte um, „wie mache ich das am besten?“ - dann lautet die Antwort nämlich: Gar nicht.

Kommentarlos umleiten ist Unfug - das lässt den Nutzer nicht mal erkennen, dass es die gewünschte Ressource nicht mehr gibt.
Wenn keine neue Seite vorhanden ist, die den angeforderten Inhalt bereitstellt, dann solltest du eine Fehlerseite mit dem Statuscode 404 Not Found oder besser noch 410 Gone ausliefern.
Auf der können sich dann neben einer Erklärung des Umstandes gerne auch Links zu anderen Themen, die den Nutzer ggf. interessieren könnten, befinden; dazu ggf. ein Suchformular, etc. Natürlich in vernünftigem Umfang, denn den Nutzer mit Links und Infos zu erschlagen, bringt auch nicht weiter.

Aber einfach kommentarlos umleiten, wäre eine plumpe Vergewaltigung von HTML und HTTP - schliesslich sehen die Mechanismen für solche Fälle vor, also sollten die auch genutzt werden.

äh, oder einfach freundlicher ausgedrückt :smiley: … es nervt den Besucher eventuell.

Wenn Du jetzt nicht wirklich auf Deinen Ansatz bestehst, wäre eine Umleitung sicher besser, wenn die Verzeichnisstruktur annähernd gleich ist. zB. alt: name.bplaced.net/irgendwas/homepage/index.php - neu: name.bplaced.net/homepage/index.php … in diesem Fall könnte man das mit mod_rewrite einfach umschreiben, sodass /homepage quasi ausgeblendet wird.

Liegt ein solches leichtes Szenario bei Dir vor?
Wenn nicht, könntest Du die Umleitungen jeweils einzeln per mod_rewrite reinschreiben, das am besten mit dem Statuscode permanent redirect, sodass das auch von Suchmaschinen richtig indiziert wird. Später dann, in einem halben Jahr zum Beispiel, entfernst Du es einfach wieder, weil bis dahin wohl die allermeisten die Umstellung mitbekommen werden.

ciao

Hallo

Es handelt sich hier um eine private Webseite mit sehr vielen Unterseiten. Ursprünglich waren es aber drei einzelne Webseiten, die nun unter einem gemeinsamen Einstieg (Portal PB) zusammengefasst sind.

Das Problem ist einerseits, dass die Verzeichnisstruktur geändert hat und deshalb alte links einen 404 erzeugen. Aber das ist nicht so schlimm. Geht man dann ins root der alten Webseiten, steht dort, wo die neue zu finden ist.

Das zweite Problem ist, dass google (und wohl auch andere Suchmaschinen) sehr viele Unterseiten indexiert haben. Das ist nicht so gut, da bei sovielen Seiten ja auch mal was ändert. Ich habe nun eine robots.txt geschrieben und dort mit “Disallow” alle Unterverzeichnisse ausgeschlossen. Der Robot sollte nun bloss noch im root suchen können. Dort findet er dann nur die “wichtigen” Seiten.

Gibt es eine Möglichkeit alle Besucher, die mittels eines links in diese Unterverzeichnisse gelangen, direkt auf /index.html zu lenken? Aber so, dass die Unterverzeichnisse dann über die Navigation trotzdem zu erreichen sind. Also bloss die Zugriffe von “extern” umlenken, nicht die von der eigenen Webseite. So könnte ich das Problem lösen, auch wenn der Robot trotzdem Unterseiten indexiert…

Also zum Beispiel alle Zugriffe auf meineseite.bplaced.net/bilder/ umlenken auf meineseite.bplaced.net/index.html.

Trotzdem muss das Verzeichnis /bilder über die Navigation erreichbar sein und darf dann nicht umgelenkt werden. Sonst dreht sich der Besucher ja im Kreis.

Ich hoffe man versteht diese Erklärung…

[quote=„patrickbieri“]Ich hoffe man versteht diese Erklärung…[/quote]öhm… nein :ps:
Ich versteh den Sinn noch net… auch ists ohne weiteres net möglich da wenn niemand in Bilder rein kommen soll dort auch niemand rein kommt… entweder Sekt oder Selters beides gibts net.

Der Sinn ist, dass letztlich bloss links auf das root möglich sein sollen. Nicht aber in ein Unterverzeichnis. Ich habe bei den dortigen Seiten auf eine Navigation verzichtet. Deshalb muss man vor/zurück des Browsers benutzen. Einen “home-link” gibt es auf diesen Seiten nicht. Somit steht der Besucher etwas in der Sackgasse. Wenn er aber anfangs immer auf index.html umgelenkt würde, dann passiert ihm das nicht.

Ich habe es inzwischen mit folgendem code versucht:

RewriteEngine On RewriteCond %{REQUEST_URI} !=/index.html RewriteRule .* /index.html [L,R=301]

Das klappt zwar, aber nun wird man auch umgelenkt, wenn man normal über die Webseite ins Unterverzeichnis geht. Es entsteht also ein Kreis und man kommt immer wieder zurück auf index.html. Sekt oder Selters? Beides? Vielleicht mit einem Trick?

Beides ist unmöglich…
bzw. es wäre nur mit PHP und einer “Erlaubnis erteilt” Methode möglich… daher nen Cookie der erlaubt die Seite zu betreten… dann kann derjenige aber auch die Seite direkt aufrufen.
Ich nehme an der Seiteninhalt wird via Frame eingebunden? Sehr schlechtes Design und vor allem total Suchmaschinen feindlich… wobei das nicht dein Problem ist, da du diese eh komplett ausgesperrt hast.

PS: via Javascript könntest du prüfen ob die Unterseite in nem Frame ist und wenn net dann die Hauptseite + Unterseite im Frame laden.
PPS: lass es mit den Frames am besten.

Leider hatte ich meine drei alten Seiten ohne CMS aufgebaut und links ausgerichtet. Deshalb die Sache mit dem frame…damit es schön in der Mitte ist :slight_smile: . Da hatte ich noch gar nicht dran gedacht, dass auch dies für den Direktzugriff ein Problem ist. Google indexiert ja nicht das frame, sondern die Seite, welche darin angezeigt wird. Klickt man dann den link an, so ist die Seite wieder links ausgerichtet…

Tja, offenbar ist es nicht möglich, zwischen einem Zugriff von extern und einem Zugriff von der eigenen Webseite zu unterscheiden. Sonst könnte man die beiden Arten ja auch unterschiedlich behandeln. Ich hoffe, dass mit der robots.txt zukünftig keine Direktlinks mehr in google eingetragen werden. Damit löst sich das Problem ja auch.

Danke für die Hilfe!

[quote=“White-Tiger”]Beides ist unmöglich…
bzw. es wäre nur mit PHP und einer “Erlaubnis erteilt” Methode möglich… daher nen Cookie der erlaubt die Seite zu betreten… dann kann derjenige aber auch die Seite direkt aufrufen.
Ich nehme an der Seiteninhalt wird via Frame eingebunden? Sehr schlechtes Design und vor allem total Suchmaschinen feindlich… wobei das nicht dein Problem ist, da du diese eh komplett ausgesperrt hast.

[size=200]PS: via Javascript könntest du prüfen ob die Unterseite in nem Frame ist und wenn net dann die Hauptseite + Unterseite im Frame laden.[/size]
PPS: lass es mit den Frames am besten.[/quote]
um es mal zu erweitern:
in die nav page kommt das rein [size=85](im Bereich, optional… verhindert das dich wer anders framed)[/size]

Die Unterseiten [size=85](auch im Bereich)[/size]:

<script type='text/javascript'>if (top == self){window.location.href = 'index.php?id2=$id';}</script>Ist nen Schnipsel aus einer meiner 1. Seiten… dort habe ich auch noch den Fehler gemacht Frames zu nutzen auch wenn es für User kein Nachteil war da direkt verlinken dank des Scripts geht :wink:

Hallo

Danke für die Details…

Inzwischen habe ich noch das Design etwas angepasst. Nicht weil mir das alte nicht gefallen hätte. Aber vielleicht gibt es ja Leute, die gerne die ganze Seite sehen möchten?

Das mit der Zensur auf dem Web scheint die reine Willkür zu sein.