Oliver Zubrod: Mit htaccess verschiedene Fehler-Seiten für verschiedene Verzeichnisse

Hallo liebe Self-HTMLer.

Ich bräuchte mal wieder euere Hilfe.
Nachdem ich endlich genug Speicherplatz bei einem professionellen Hoster habe, möchte ich dort verschiedene Projekte veröffentlichen.
Diese sollen natürlich in verschieden Verzeichnissen abgelegt werden.

Eine eigene Seite, bei einem fehlerhaften Aufruf, die man Dank der htaccess-Datei anzeigen lassen kann, macht sich natürlich immer gut.

Jetzt meine Frage: Ist es irgendwie möglich, die htaccess-Datei so zu konfigurieren, daß pro angelegtem Unterverzeichnis eine eigene
"Fehler-Seite" erscheint?

Ich würde mich über euere Hilfe freuen. Und übrigends: Die Einrichtung von Sundomains ist leider nicht möglich.

Gruß aus Nürnberg,
olli

  1. Jetzt meine Frage: Ist es irgendwie möglich, die htaccess-Datei so zu konfigurieren, daß pro angelegtem Unterverzeichnis eine eigene
    "Fehler-Seite" erscheint?

    Nein, jedes Unterverzeichnis braucht dann seine eigene .htaccess

    1. WOW - das war ja 'ne schnelle Antwort. Danke!

      Nein, jedes Unterverzeichnis braucht dann seine eigene .htaccess

      Und man kann da wirklich einfach so in jedes Verzeichniss eine eigene .htaccess reinlegen?? Klappt das?

      Gruß,
      olli

      1. Hallo Olli,

        ich kann Dir zwar nicht helfen, aber mich würde interessieren ob das geht, verschiedene .htaccess innerhalb der gleichen domain zu verwenden.

        Wäre nett, wenn Du mir antworten würdest.

        Danke und tschü

        Frankie

        WOW - das war ja 'ne schnelle Antwort. Danke!

        Nein, jedes Unterverzeichnis braucht dann seine eigene .htaccess
        Und man kann da wirklich einfach so in jedes Verzeichniss eine eigene .htaccess reinlegen?? Klappt das?

        Gruß,
        olli

        1. Hi Olli, hi Frankie,

          ich kann Dir zwar nicht helfen, aber mich würde interessieren ob das
          geht, verschiedene .htaccess innerhalb der gleichen domain zu

          Nein, jedes Unterverzeichnis braucht dann seine eigene .htaccess
          Und man kann da wirklich einfach so in jedes Verzeichniss eine eigene
          .htaccess reinlegen?? Klappt

          Klar geht das.
          Der Apache hangelt sich im Verzeichnisbaum solange nach oben, bis er eine
          .htaccess findet. Die wird dann genommen. In jedem Verzeichnis ne andere
          ist also kein Problem.

          also einfach .htaccess mit entsprechendem Inhalt erstellen:

          ErrorDocument 404 /fehler/fehler404.html
              ErrorDocument 403 /fehler/fehler403.html

          Liste der Codes <../../sfarchiv/2000_3/t16775.htm#a84743>

          Eventuell möchtest du auch noch
              Options -Indexes
          einfügen, dann zeigt er keine Inhaltsverzeichnisse mehr an, (sondern 403)
          wenn es keine index.html gibt.

          Vielleicht nützt dir auch
              DirectoryIndex startseite.html
          dann wird auch startseite.html (statt index.html) automatisch aufgerufen,
          wenn man eine URL angibt, wo nur der Pfad drinsteht.

          Nicht alles muss bei jedem Provider freigeschaltet sein, einfach ausprobieren.

          Gruss,
          Carsten

          1. Guten Morgen Carsten.

            Vielen Dank für dein Posting, du hast mir (und wahrscheinlich auch Frankie) sehr geholfen.

            Schönen Tag noch (bei DEM Wetter - zumindest hier in Nürnberg)
            olli

      2. Nein, jedes Unterverzeichnis braucht dann seine eigene .htaccess

        Und man kann da wirklich einfach so in jedes Verzeichniss eine eigene .htaccess reinlegen?? Klappt das?

        Solange es in der Serverkonfiguration nicht für bestimmte Verzeichnisse explizit verboten ist, ja. Eine .htaccess gilt immer für das aktuelle und alle darunter liegenden Verzeichnisse, somit kannst du beliebig vielen Verzeichnissen beliebig viele .htaccess Dateien zuordnen, auch unterhalb der selben Domain.

        1. Nochmals hallo.

          Solange es in der Serverkonfiguration nicht für bestimmte Verzeichnisse explizit verboten ist, ja. Eine .htaccess gilt immer für das aktuelle und alle darunter liegenden Verzeichnisse, somit kannst du beliebig vielen Verzeichnissen beliebig viele .htaccess Dateien zuordnen, auch unterhalb der selben Domain.

          So weit die Theorie.
          Leider klappt es bei mir immer noch nicht. Woran könnte das liegen? Was hab ich falsch gemacht.

          Unter meiner Domain www.meine-domain.xy habe ich ein Unterverzeichnis namens "Verzeichnis" angelegt,
          welches dann mit www.meine-domain.xy/verzeichnis zu erreichen ist.
          In diesem Verzeichnis befindet sich eine htaccess, die folgenden Inhalt hat:
          ErrorDocument 401 /error/error.htm
          ErrorDocument 402 /error/error.htm
          ErrorDocument 403 /error/error.htm
          ErrorDocument 404 /error/error.htm

          Sowohl der Ordner "error", als auch die Datei "error.htm" existieren natürlich im Unterverzeichnis.

          Rufe ich jetzt allerdings eine nicht existierende Seite auf (z.B.: www.meine-domain.xy/verzeichnis/falscheseite.htm) auf,
          erscheint nicht die von mir erstellte Fehlermeldung (error/error.htm) sondern eine Standardmeldung.

          Wo liegt mein Fehler? Was habe ich falsch gemacht?

          Besten Dank.

          olli

          1. Hallo Olli!

            ErrorDocument 401 /error/error.htm
            ErrorDocument 402 /error/error.htm
            ErrorDocument 403 /error/error.htm
            ErrorDocument 404 /error/error.htm

            bei "/error/error.htm" wird die Datei http://www.meine-domain.xy/error/error.htm
            aufgerufen, also gib an dieser Stelle "/verzeichnis/error/error.htm"
            an oder noch einfach den richtigen URL der Fehlerseite, also
            http://www.meine-domain.xy/verzeichnis/error/error.htm, so sollte
            es dann klappen.

            Viele Grüße aus Dresden,
            Stefan Einspender

            1. Hallo Stefan.

              bei "/error/error.htm" wird die Datei http://www.meine-domain.xy/error/error.htm
              aufgerufen, also gib an dieser Stelle "/verzeichnis/error/error.htm"
              an oder noch einfach den richtigen URL der Fehlerseite, also
              http://www.meine-domain.xy/verzeichnis/error/error.htm, so sollte
              es dann klappen.

              Ich habe deine Tips natürlich gleich ausprobiert.
              Leider klappt es immer noch nicht.
              Hast du (oder jemand anderes) vielleicht noch eine Idee?

              Danke und Grüße aus Nürnberg,
              olli

              1. ErrorDocument 401 /xyz/error401.html
                ErrorDocument 403 /xyz/error403.html
                ErrorDocument 404 /xyz/error404.html

                diese drei zeilen (ohne zeilenschaltung nach dem letzten eintrag)
                funktionieren, als .htaccess abgespeichert, bei mir wunderbar, die
                error-dokumente liegen dabei im verzeichnis /xyz, aber genausogut
                funzt auch, wenn ich http://www.domain.xy/xyz/error401.html usw.
                angebe.
                die .htaccess kann in jedem beliebigen verzeichnis der domain
                liegen, für dieses und sämtliche verzeichnisse unterhalb gelten
                dann obengenannten error-dokumente.

                bitte achte unbedingt auf den dateinamen ".htaccess" (ohne .txt
                am ende, eventuell mußt du die datei nach dem hochladen im ftp-
                programm umbenennen, solltest du mal erforschen, was da steht ;-)

                mfg, se

                ps: sollte es dann wirklich nicht funzen, dann frage mal lieber
                bei deinem websp$ce-provider nach, ob es überhaupt freigeschalten
                ist, bei strato geht es aber ganz sicher.

                1. ps: sollte es dann wirklich nicht funzen, dann frage mal lieber
                  bei deinem websp$ce-provider nach, ob es überhaupt freigeschalten
                  ist, bei strato geht es aber ganz sicher.

                  Hi Stefan,

                  du hast recht: bei Strato klappt das wirklich.
                  Aber bei meinem neuen Hoster funzt des ganze immer noch net.
                  Werd mich wohl mit denen mal in Verbindung setzen müssen!
                  Mach ich aber erst morgen (ähh: heute), aber jetzt geh ich erst mal schlafen.

                  Danke für deine Hilfe.
                  MfG
                  olli

            2. an oder noch einfach den richtigen URL der Fehlerseite, also
              http://www.meine-domain.xy/verzeichnis/error/error.htm, so sollte
              es dann klappen.

              Das sollte man niemals machen, da der Response Code so geändert wird und der UserAgent nicht mehr erkennen kann, woran er ist.

  2. Hi,

    Jetzt meine Frage: Ist es irgendwie möglich, die htaccess-Datei so zu konfigurieren, daß pro angelegtem Unterverzeichnis eine eigene
    "Fehler-Seite" erscheint?

    ja, ich denke, das ist (indirekt) möglich.

    Ich würde dazu als Fehler-Handler eine CGI-Anwendung schreiben.
    Diese kann über entsprechende Environment-Variablen herausfinden, in welchem Verzeichnis der Fehler vorlag.
    Aus diesem Verzeichnis kann sie den Namen der Deiner Meinung nach zugehörigen Fehlerdatei berechnen und dann

    • entweder diese einlesen und ausgeben
    • oder per HTTP-Header "Location:" dorthin verzweigen.

    mfG - Michael