Index.php leitet nicht auf Startseite weiter (1&1)

DKK007

PCGH-Community-Veteran(in)
Wir haben einen Webspace bei 1&1 (1&1 Basic Vertrag).

Ich habe gestern unsere Webseite hochgeladen und PHP5.5 aktiviert. Allerdings funktioniert die Weiterleitung mit der Index.php im Stammverzeichnis ( /Index.php ) zur Webseite ( /website/start.php ) nicht. Die Einzelnen Webseiten die auch in php und html geschrieben sind werden korrekt angezeigt. Auf dem Apache-Server bei mir am Laptop gab es nie Probleme.

Zur Zeit habe ich erst mal eine Index.html erstellt mit einem Link zur Startseite, ist jedoch nicht besonders schön.

Ein weiteres Problem ist, das man im Firefox bei Eingabe der Domain "am-alten-fernweg.de" nicht auf die index.php/html weitergeleitet wird sondern auf "am-alten-fernweg.de/defaultsite". Im Internetexplorer und Chromium geht das.

Danke für jeden hilfreichen Beitrag.

mfg. DKK007

PS: So soll die Webseite eigentlich angezeigt werden:
Hof am alten Fernweg
 
erstelle eine Datei mit den namen ".htaccess" mit den inhalt "DirectoryIndex index.php" im gleichen verzeichniss müsste dann klappen
Edit: die index.html umbenennen.
 
Er scheint die am-alten-fernweg.de/index.php jetzt korrekt aufzurufen.

Das Problem scheint jedoch in der /index.php zu liegen.

PHP:
  <?php         if(!headers_sent())
	  {	
             header("Location: ./website/index.php"); 
          } else  {
             header("Location: ./website/index.php"); 
          }

  echo '<html><head><meta http-equiv="refresh" content="1; URL=http://am-alten-fernweg.de/website/start.php"><!-- ... andere Angaben im Dateikopf ... --><title>Hof am alten Fernweg</title></head><body>  <h3>Hof am alten Fernweg<h3>  <a href="./website/start.php" style="text-decoration: none;"> <font face="Arial" size=4>Zur Webseite "am-alten-Fernweg.de"</font> </a></body></html>' ;
?>

Wenn die Webseite bei mir auf dem Apache aufgerufen wird, leitet er korrekt weiter. Wird die Webseite auf dem Server aufgerufen, zeigt er den Link an und leitet nach ein paar Sekunden über den Html-refresh weiter.
 
Gibt es einen Grund, dass du die Seite nicht ins Root-Verzeichnis legst?
Wie hast du die Weiterleitung erstellt? Bitte mal den Code angeben. Danke.
Bekommst du eine Fehlermeldung?
Deine Domäne zeigt ins richtige Verzeichnis?
Mal am Werk vorbei, wobei ich sonst auch hellsing zustimme, ist die Seite den schon das finale Werk??


Code:
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:8
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:18
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:27
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:37
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:47
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:58
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:68
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:79
Unbekannte Eigenschaft 'high'.  Deklaration ignoriert. start.php:81
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:88
Unbekannte Eigenschaft 'high'.  Deklaration ignoriert. start.php:90
Fehler beim Verarbeiten des Wertes für 'position'.  Deklaration ignoriert. start.php:97
Unbekannte Eigenschaft 'high'.  Deklaration ignoriert. start.php:99
getUserData()  und setUserData() sollten nicht mehr verwendet werden. Verwenden Sie  stattdessen WeakMap oder element.dataset. requestNotifier.js:63
Die  Zeichenkodierung des HTML-Dokuments wurde nicht deklariert. Das Dokument  wird in manchen Browser-Konfigurationen mit verstümmeltem Text  dargestellt, wenn das Dokument Zeichen außerhalb des US-ASCII-Bereichs  enthält. Die Zeichenkodierung der Seite muss im Dokument oder  Transferprotokoll deklariert werden.
Mal ein Ausschnitt aus der Firefox Konsole


Ein doctype zu definieren wäre nicht schlecht, damit der Browser auch weiß welches HTML benutzt wird.
position:center; gibt es nicht. Zumal es auch gleich zweimal definiert worden ist, als absolute und als center, was nicht zulässig ist innerhalb einer Deklaration.
Eine css Eigenschaft "high" gibt es ebenfalls nicht.
Die css würde ich in eine externe Datei verlegen.


edit: sollte es dann nicht auch so funktionieren: header("Location: http://am-alten-fernweg.de/website/start.php");
ps: versteh ich dich richtig, dass du in deinem Stammverzeichnis eine index.php hast, die dich weiterleitet auf /website/index.php, die dich wiederrum weiterleitet auf /website/start.php?

Gruß
rtf
 
Zuletzt bearbeitet:
Die start.php funktioniert wie sie soll, es ist noch ein php-script für den Besucherzähler eingebunden. Die Webseite ist auch eigentlich fertig, nur das mit der index.php ist noch ein Problem, dass es bei der Entwicklung nicht gab.

Weiß jemand, wie ich dem GoogleBot mitteile, das es eine neue Webseite im www gibt? Die Seite ist jetzt seit gestern Abend online und wird immer noch nicht von Google gefunden.

Zum Edit von rtf:
PHP:
header("Location: http://am-alten-fernweg.de/website/start.php");
Funktioniert bei mir auf dem localhost, jedoch auch nicht auf dem Server.
 
Zuletzt bearbeitet:
Es bleibt immer noch die Frage warum du mit dieser Lösung rumpfuschen willst? Also von Index.php nach website/index.php umzuleiten?
Das macht doch einfach keinen Sinn. Es liegt ja nicht außerhalb von root sondern in der Verzeichnisstruktur nach root ist also auch übers Web direkt zu erreichen eben mit "www.domain.de/website/index.php" warum leitest du also nicht direkt die Domain auf die endgültige anzuzeigende Website?

Ein Header wie header("Location: ./website/index.php"); ist im übrigen eine relative Pfadangabe und somit immer unzulässig.

Eine Angabe wie <meta http-equiv="refresh" content="1; URL=http://am-alten-fernweg.de/website/start.php"> im Code sorgt außerdem dafür das Google und Co die Seite ignorieren. Vor der Weiterleitung müssen mindestens 5 oder sogar 10 Sekunden Wartezeit vergehen damit Suchmaschinen diese Seiten nicht ausfiltern ;)


Du sagtest das Firefox die Domain "am-alten-fernweg.de" nicht frisst. Hast du Firefox auch h ttp://am-alten-fernweg.de mitgegeben oder hast du "nur" "am-alten-fernweg.de" eingegeben?


PHP:
 if(!headers_sent())
      {    
             header("Location: ./website/index.php"); 
          } else  {
             header("Location: ./website/index.php"); 
          }
Denn Sinn dieses Codes blicke ich noch nicht ganz. Sagst du da wirklich wenn Header nicht gesendet dann Leite weiter und wenn Header gesendet dann leite auch weiter?

Warum sparst du dir dann nicht das if und sagst gleich Leite weiter da du ja in jedem Fall weiterleiten möchtest x-D
 
Zuletzt bearbeitet:
Weiß jemand, wie ich dem GoogleBot mitteile, das es eine neue Webseite im www gibt? Die Seite ist jetzt seit gestern Abend online und wird immer noch nicht von Google gefunden.

Ihren Content übermitteln

Früher oder später findet Google die Seite aber auch automatisch, schließlich hast Du sie jetzt schon mindestens einmal verlinkt. :D

Zum Topic:

Wie einige andere schon sagten, würde ich mir die Krücke mit der Umleitung sparen und die Domain direkt auf das Zielverzeichnis zeigen lassen.
 
Ein Header wie header("Location: ./website/index.php"); ist im übrigen eine relative Pfadangabe und somit immer unzulässig.

Danke , das wusste ich nicht. Jedoch ist es merkwürdig, das es bei mir auf dem Apache funktioniert.

Du sagtest das Firefox die Domain "am-alten-fernweg.de" nicht frisst. Hast du Firefox auch h ttp://am-alten-fernweg.de mitgegeben oder hast du "nur" "am-alten-fernweg.de" eingegeben?

Ich habe "am-alten-fernweg.de" eingegeben.


@rtf: Die Fehler im css habe ich gerade noch schnell behoben.
 
Teste bitte mal was passiert wenn du im Firefox http:// am-alten-fernweg.de eingibst. Vielleicht möchte er explizit das Protokoll genannt bekommen.

Weil dein Apache Webserver Lokal ist. Auf deinem eigenen Rechner findest du das ganze also auch ohne Probleme mit einem relativen Pfad ;)

Das ist wie die Angabe "Das Rote Hemd findest du im Kleiderschrank" wenn du das bei dir Zuhause sagst, dann findet die suchende Person das Rote Hemd auch. Wenn du das aber bei deinem Kumpel zuhause sagst, dann solltest du schon sagen "Das Rote Hemd findest du im Kleiderschrank in der XYZ Straße 400 in 50678 Köln".
 
Weiterleitung ist Mist.
Stell doch einfach ein, dass die Domain direkt auf website/ verweist.

Wenn es dein eigener Server ist (ich gehe mal von Apache aus) findest du das in /etc/apache2/sites-enabled/... dann entsprechend DocumentRoot setzen, siehe Apachehandbuch.

Wenn es ein gemietetes Webhostingpaket ist, im Administrationsinterface, meist unter "Domains" etwas anpassen, das Pfad/Verzeichnis oder so heißt.

Dann noch ein paar Sachen, die dir mit deinem aktuellen Problem auch nicht weiterhelfen, die aber mal gesagt werden sollten: Der Seite fehlt die Doctype-Deklaration. Der Seite fehlt ein Encoding-Meta-Tag, was u. A. aus Sicherheitsgründen sinnvoll ist (UTF-7 Cross Site Scripting Attacke). Der Syntax ist teils inkorrekt (</br> gibt es nicht, es gäbe höchstens <br/>). Bei Interesse zähle ich noch mehr auf... ;-)
 
Die Webseite liegt bei 1&1, da komme ich leider nicht an den /etc/ ran.

Um die anderen Sachen werde ich mich demnächst noch mal kümmern.
 
Es ist bei 1und1 kein Problem, festzulegen, auf welches Verzeichnis die Domain zugreifen soll. Du findest die Einstellungen im "Control Center".
 
Zurück