Ben: index.html wird ignoriert

Hallo zusammen,

ich habe mittlerweile Stunden damit verbracht, nach der Lösung zu suchen, sollte ich dabei zu doof gewesen sein möge man mir verzeihen und vielleicht trotzdem einen Tip geben..
-------------
|Das Problem|
-------------
Auf einem virtuellen Server (Debian GNU/Linux 3.1) eines Webhosters habe ich unter apache eine unterdomain "subdomain.domain.de" eingerichtet.
In der Root befinden sich die Dateien:

/subdomain
-----------/index.html
-----------/index.php

Die index.php enthält eine Weiterleitung mittels header(location) auf index.html.

Beim Versuch, die Seite aufzurufen, erhalte ich den Fehler:
"Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

--------------------------
|Bisherige Lösungsansätze|
--------------------------
Die Zugriffsrechte und Benutzer sind bei beiden Dateien identisch und korrekt (ein Test mit phpinfo() in der index.php fiel positiv aus).

Entferne ich die index.php, bekomme ich einen "404: The requested URL /index.php was not found on this server"-Fehler.

/var/log/apache2/error.log sagt mir: " File does not exist: /pfad/zur/homepage/index.php"

Des weiteren ist in der .conf für den virtuellen host folgende Einstellung vorhanden:
"DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.php5 index.shtml index.shtm index.sht"

Dies habe ich testweise versucht, mit der .htaccess zu übergehen:
"DirectoryIndex index.html index.htm"

Hat aber nichts gebracht. Mitterweile bin ich ratlos. Der Server scheint trotz der vorhandenen index.html auf die index.php zu bestehen und ich weiß nicht warum! Ein Kollege behauptete, es gäbe da ein php-skript was explizit eine index.php erwartet, diese Option könne man aber abstellen. Leider wusste er nicht, was das für ein skript war.
Vielleicht kann mir da jemand helfen ?
Vielleicht habe ich einen grundlegenden Denkfehler?

Gruß,
Ben

  1. Hallo,

    In der Root befinden sich die Dateien:

    /subdomain
    -----------/index.html
    -----------/index.php

    Die index.php enthält eine Weiterleitung mittels header(location) auf index.html.

    warum? Dann würde ich sie weglassen und diese Weiterleitung intern z.B. mit mod_rewrite machen.

    Beim Versuch, die Seite aufzurufen, erhalte ich den Fehler:
    "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

    Welche Seite genau? Und wer meldet diesen Fehler? Der Browser? Dein Server? Wie sieht der HTTP-Response-Header wirklich aus? Wo kann man sich das online ansehen, um den Fehler einzugrenzen?

    Ich vermute, die Fehlermeldung kommt vom Browser, der erkannt hat, dass eine Ressource ein Redirect auf sich selbst veranlasst.

    Entferne ich die index.php, bekomme ich einen "404: The requested URL /index.php was not found on this server"-Fehler.
    /var/log/apache2/error.log sagt mir: " File does not exist: /pfad/zur/homepage/index.php"

    Okay, das ist schlüssig.

    Des weiteren ist in der .conf für den virtuellen host folgende Einstellung vorhanden:
    "DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.php5 index.shtml index.shtm index.sht"

    Das spielt nur dann eine Rolle, wenn du das Verzeichnis direkt ansprichst, ohne konkret eine bestimmte Ressource darin zu adressieren.

    Ein Kollege behauptete, es gäbe da ein php-skript was explizit eine index.php erwartet, diese Option könne man aber abstellen.

    Unsinn.

    Vielleicht kann mir da jemand helfen ?
    Vielleicht habe ich einen grundlegenden Denkfehler?

    Nochmal ganz langsam:
     * Was steht genau in der relevanten .htaccess?
     * Was steht genau in der index.php?
     * Wie lautet die URL zum Testen?

    Schönen Abend noch,
     Martin

    --
    Irgendwann in grauer Vorzeit benutzte einer unserer prähistorischen Vorfahren ein Schimpfwort anstelle der Keule.
    Die Zivilisation hatte begonnen.
    1. Die index.php enthält eine Weiterleitung mittels header(location) auf index.html.

      warum? Dann würde ich sie weglassen und diese Weiterleitung intern z.B. mit mod_rewrite machen.

      siehe meine Antwort auf Beitrag oben: die Weiterleitung über index.php war nur vorübergehend und diente zum testen, ob die index.html überhaupt akzeptiert wird. Offenbar wird trotzdem die index.php verlangt, obwohl der Eintrag im header richtig ist (s.o.).

      Welche Seite genau? Und wer meldet diesen Fehler? Der Browser? Dein Server? Wie sieht der HTTP-Response-Header wirklich aus? Wo kann man sich das online ansehen, um den Fehler einzugrenzen?

      http://alveran.slashdotalots.de

      Ich vermute, die Fehlermeldung kommt vom Browser, der erkannt hat, dass eine Ressource ein Redirect auf sich selbst veranlasst.

      Ja das sieht so aus, hatte ich auch zuerst vermutet.
      Aber in der index.php steht:

      <?php
      header("Location: http://alveran.slashdotalots.de/index.html");
      exit;
      ?>

      Zur Zeit liegt nur eine index.html im Verzeichnis, die index.php ist raus.
      Das führt bei Aufruf von "alveran.slashdotalots.de" zu:
      "The requested URL /index.php was not found on this server.
      Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request."

      Allerdings auch, wenn ich "alveran.slashdotalots.de/index.html" aufrufe.

      Des weiteren ist in der .conf für den virtuellen host folgende Einstellung vorhanden:
      "DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.php5 index.shtml index.shtm index.sht"

      Das spielt nur dann eine Rolle, wenn du das Verzeichnis direkt ansprichst, ohne konkret eine bestimmte Ressource darin zu adressieren.

      s.o.

      Nochmal ganz langsam:
      * Was steht genau in der relevanten .htaccess?

      Zur Zeit nur: DirectoryIndex index.html index.htm

      * Was steht genau in der index.php?

      Bisher

      <?php
      header("Location: http://alveran.slashdotalots.de/index.html");
      exit;
      ?>

      Jetzt ist sie raus. Ich will ja eigentlich nur, dass die index.html akzeptiert wird. Die Weiterleitung kann ja ruhig raus, das war nur temporär...

      * Wie lautet die URL zum Testen?

      s.o.

      Schönen Abend noch,
      Martin

      Danke, und vielen Danke für die bisherigen Hinweise.

      1. Hallo Ben,

        Jetzt ist sie raus. Ich will ja eigentlich nur, dass die index.html akzeptiert wird. Die Weiterleitung kann ja ruhig raus, das war nur temporär...

        Ok, alles klar - die index.php tut also nichts zur Sache.
        Nun müssen wir herausfinden, warum der Server eine index.php erwartet.

        Was sagt dir deine error_log, wenn du den LogLevel kurzfristig auf "debug" setzt?
        Nicht vergessen den LogLevel danach wieder zurückzustellen - sonst wächst die Logdatei sehr stark! Sozusagen "Logdatei ohne Grenzen". ;)

        Grüße

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
        1. Hallo Ben,

          Jetzt ist sie raus. Ich will ja eigentlich nur, dass die index.html akzeptiert wird. Die Weiterleitung kann ja ruhig raus, das war nur temporär...

          Ok, alles klar - die index.php tut also nichts zur Sache.
          Nun müssen wir herausfinden, warum der Server eine index.php erwartet.

          Was sagt dir deine error_log, wenn du den LogLevel kurzfristig auf "debug" setzt?
          Nicht vergessen den LogLevel danach wieder zurückzustellen - sonst wächst die Logdatei sehr stark! Sozusagen "Logdatei ohne Grenzen". ;)

          Hm. Einziger neuer Eintrag:

          [debug] mod_alias.c(438): [client 127.0.0.1] incomplete redirection target of '/apache2-default/' for URI '/' modified to 'http://v539.ncsrv.de/apache2-default/'

          Und da bin ich an meinen Grenzen... aber mir siehts nicht so aus, als wär das des Pudels Kern oder?

  2. Hallo Ben,

    Die index.php enthält eine Weiterleitung mittels header(location) auf index.html.

    Beim Versuch, die Seite aufzurufen, erhalte ich den Fehler:
    "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

    Eine kurze Google-Suche nach der von dir entdeckten Fehlermeldung deutet darauf hin, dass du eine Endlosschleife produziert hast. Bist du sicher, dass die Datei index.php tatsächlich auf index.html weiterleitet? Oder leitet die index.php etwa auf sich selbst weiter?
    Wie sieht der Header-Befehl genau aus?

    Und wieso brauchst du eigentlich mehrere index-Dateien in einem Ordner? ;)

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    1. Hallo Ben,

      Die index.php enthält eine Weiterleitung mittels header(location) auf index.html.

      Beim Versuch, die Seite aufzurufen, erhalte ich den Fehler:
      "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

      Eine kurze Google-Suche nach der von dir entdeckten Fehlermeldung deutet darauf hin, dass du eine Endlosschleife produziert hast. Bist du sicher, dass die Datei index.php tatsächlich auf index.html weiterleitet? Oder leitet die index.php etwa auf sich selbst weiter?
      Wie sieht der Header-Befehl genau aus?

      Und wieso brauchst du eigentlich mehrere index-Dateien in einem Ordner? ;)

      Grüße

      Marc Reichelt || http://www.marcreichelt.de/

      Der Header verweist auf die index.html:

      <?php
      header("Location: http://subdomain.domain.de/index.html");
      exit;
      ?>

      Die index.php mit Umleitung hab ich ja eigentlich nur drin, weil die index.html eben nicht akzeptiert wird. Der Gedanke war ursprünglich, dass die index.php auf das Upload-skript in einem Unterverzeichnis verweist, von wo aus ein (mir bekannter) Dritter seine Homepage hochladen kann, die wiederum über index.html startet.

      Endlosschleife hab ich auch gelesen, aber offenbar wird ja explizit die index.PHP gesucht. Also irgendwo scheint da ein harter Verweis darauf zu sein... ich hab nur keine Idee mehr wo.

  3. Hi!

    Dumme Frage: Wie genau hast Du denn die Subdomain eingerichtet und auw was genau zeigt die denn?

    1. Hi!

      Dumme Frage: Wie genau hast Du denn die Subdomain eingerichtet und auw was genau zeigt die denn?

      Hallo,

      die httpd.conf für den vhost sieht in etwa so aus:

      #################

      <Directory "/home/.../subdomain">
        Options +FollowSymLinks -SymLinksIfOwnerMatch
        DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.php5 index.shtml index.shtm index.sht
        <IfModule mod_access.c>
          Allow from all
        </IfModule>
        suPHP_engine on
        <Files ~ ".(wml.*|wbmp)$">
          deny from all
        </Files>
      </Directory>

      <VirtualHost 89.110.146.43:80>
        ServerName alveran.slashdotalots.de
        DocumentRoot /home/.../alveran
        SuexecUserGroup web0 web0
        suPHP_ConfigPath /etc/...
      </VirtualHost>

      ###############

      Ich hab auch ein upload-skript in dem verzeichnis /subdomain/uploadskript installiert, das ohne probleme funktionier. Also denke ich nicht, dass an der vhost-Einstellung liegt. Oder...?

  4. Hi,

    /subdomain
    -----------/index.html
    -----------/index.php

    Die index.php enthält eine Weiterleitung mittels header(location) auf index.html.

    Beim Versuch, die Seite aufzurufen, erhalte ich den Fehler:
    "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

    Gibt es in der Serverkonfiguration eine Rewrite-Rule/Redirection von index.html oder *.html auf index.php oder *.php?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi,

      /subdomain
      -----------/index.html
      -----------/index.php

      Die index.php enthält eine Weiterleitung mittels header(location) auf index.html.

      Beim Versuch, die Seite aufzurufen, erhalte ich den Fehler:
      "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

      Gibt es in der Serverkonfiguration eine Rewrite-Rule/Redirection von index.html oder *.html auf index.php oder *.php?

      cu,
      Andreas

      Die einzigen relevanten RewriteRules, die ich gefunden hab, sind in der .htaccess für das verzeichnis /home/user/html/.
      In diesem Verzeichnis liegt auch das unterverzeichnis /alveran/ für die subdomain. Im /html-Verzeichnis ist direkt ein serenditpity-blogsystem installiert. Dieses hat offenbar die .htaccess automatisch generiert, wie ein # Begin s9y zu Beginn andeutet.
      Dummerweise kenn ich mich in den Rewrite-Direktiven so gar nicht aus...
      Das einzige, was mir spontan auffällt, sind die folgenden Einträge:

      RewriteRule ^([0-9]+)[_-][0-9a-z_-]*.html index.php?url=$1-article.html [L,NC,QSA]
      RewriteRule ^index.(html?|php.+) index.php?url=index.html [L,QSA]

      Kann es daran liegen ?

      1. Hi,

        RewriteRule ^([0-9]+)[_-][0-9a-z_-]*.html index.php?url=$1-article.html [L,NC,QSA]
        RewriteRule ^index.(html?|php.+) index.php?url=index.html [L,QSA]
        Kann es daran liegen ?

        Aber sicher doch. Alles, was index.html heißt, wird auf index.php umgeleitet.
        Dein index.php leitet wieder auf index.html um, was wieder auf index.php umgeleitet wird, was Dein index.php wieder auf index.html ....

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hi,

          RewriteRule ^([0-9]+)[_-][0-9a-z_-]*.html index.php?url=$1-article.html [L,NC,QSA]
          RewriteRule ^index.(html?|php.+) index.php?url=index.html [L,QSA]
          Kann es daran liegen ?

          Aber sicher doch. Alles, was index.html heißt, wird auf index.php umgeleitet.
          Dein index.php leitet wieder auf index.html um, was wieder auf index.php umgeleitet wird, was Dein index.php wieder auf index.html ....

          cu,
          Andreas

          Ach, son Dreck! Dann werd ich mich wohl oder übel mit den RewriteRules auseinandersetzen ;-/
          Vielen Dank erstmal für die Unterstützung, ich meld mich, wenn es geklappt hat.

          1. Oha!

            Das ist aergerlich und genau der Grund (eher einer der Gruende) warum ich im Rootverzeichnis stets nur eine 'Notfall index.htm' habe. Alles was sich sonst auf dem Webspace befindet liegt im eigenen Unterverzeichnis, worauf dann verwiesen wird.

            Viel Erfolg beim beseitigen dieses Problems!

            1. Oha!

              Das ist aergerlich und genau der Grund (eher einer der Gruende) warum ich im Rootverzeichnis stets nur eine 'Notfall index.htm' habe. Alles was sich sonst auf dem Webspace befindet liegt im eigenen Unterverzeichnis, worauf dann verwiesen wird.

              Viel Erfolg beim beseitigen dieses Problems!

              So, das auskommentieren der entsprechenden Umleitung hat geholfen.
              Das Problem hier war ja, das mein Kollege (der den Server mitbetreibt) das Blog ins Root installiert und das s9y dann die .htacces erstellt hat. Ja, man sollte die Projekte auch in verschiedenen Unterverzeichnissen speichern ;)
              Also vielen Dank nochmal allerseits für die prompte Unterstützung!