Julia: Xampp und Mod Rewrite?

Halli hallo!
Nun sitze ich hier und weiß nicht mehr weiter.

Ich habe mir heute Xampp Version 1.6.7 heruntergeladen und will sogleich mit dem Offline Server loslegen. Allerdings gibt es da leider ein Problem:

Wenn meine .htaccess Datei im gleichen Ordner wie die Inhalte liegt, kann ich meine Seite nicht sehen und bekomme immer einen 500 Serverfehler:

"Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 500
localhost
07/14/08 00:11:44
Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8h mod_autoindex_color PHP/5.2.6"

Nun gut dachte ich, google ich mal, wo das Problem liegen könnte, gesagt getan und habe meine conf Datei verändert, folgende Sachen habe ich hinzugefügt/verändert:

<Directory />
Options FollowSymLinks
AllowOverride FileInfo
</Directory>

# AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

#
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

"C:/xampp/cgi-bin" should be changed to whatever your ScriptAliased

CGI directory exists, if you have that configured.

<Directory "C:/xampp/cgi-bin">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
</Directory>

Allerdings erhalte ich auch weiterhin immer noch den selben 500 Serverfehler, WARUM? Welche Einstellungen muss ich denn noch vornehmen, damit meine .htaccess Datei funktioniert?

.htaccess Datei fängt so an:

ErrorDocument 404 /indexx.php?page=tools/errorimage
ErrorDocument 403 /indexx.php?page=tools/errorimage

RewriteEngine on
Hier kommen die Rewrite Befehle hin.

Und ne ganz dumme Frage, den Apache Server neustarten, heißt das im Control Panel einfach auf "Refresh" klicken?

Vielen Dank im Voraus!

  1. hallo,

    Nun sitze ich hier und weiß nicht mehr weiter.

    Armer schwarzer Kater

    Wenn meine .htaccess Datei im gleichen Ordner wie die Inhalte liegt

    ...hat sie für deinen lokalen Betrieb nichts dort zu suchen. Sofern du deinen Server lokal betreibst, solltest du aus guten Gründen gar keine .htaccess benutzen.

    <Directory />
    Options FollowSymLinks
    AllowOverride FileInfo
    </Directory>

    "FollowSymLinks" macht unter Windows keinen Sinn, da Windows keine Symlinks befolgen kann - zumindest nicht in dem Sinn, in dem sie der Apache erwartet.

    ErrorDocument 404 /indexx.php?page=tools/errorimage
    ErrorDocument 403 /indexx.php?page=tools/errorimage

    Bist du sicher, daß du wirklich eine "indexx.php" als DirectoryIndex eingetragen hast?

    RewriteEngine on
    Hier kommen die Rewrite Befehle hin.

    Und welche sind das? Vermutlich sitzt hier der entscheidende Fehler, und den verschweigst du.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hi,

      ...hat sie für deinen lokalen Betrieb nichts dort zu suchen. Sofern du deinen Server lokal betreibst, solltest du aus guten Gründen gar keine .htaccess benutzen.

      erzähle bitte nicht so einen Unsinn!
      XAMPP wird genutzt, um die später veröffentlichten Seiten zu entwickeln. Dazu gehört auch die Nutzung der .htaccess, wenn auf dem Webspace (wie meistens) kein anderer Zugriff auf die Serverkonfigurierung möglich ist.

      Julia, in XAMPP sind viele Module deaktiviert, was auch in diesem Fall zu dem 500er führt. Suche in der apache\conf\httpd.conf nach #LoadModule rewrite_module modules/mod_rewrite.so und entferne das Kommentarzeichen #.

      Außerdem empfehle ich Dir dringend, in Deinem Hauptverzeichnis des Apache (also das, welches über localhost aufgerufen wird) eine .htaccess mit diesem Inhalt:

      order deny,allow  
      deny from all  
      allow from 127.0.0.1
      

      anzulegen - ansonsten kann jeder, der Deine aktuelle IP kennt, hierauf und ggfls. auf Unterverzeichnisse zugreifen (mir ist unverständlich, wieso die Entwickler von XAMPP keine solche Direktive bereits eingebunden haben).

      freundliche Grüße
      Ingo

      1. hallo Ingo,

        ...hat sie für deinen lokalen Betrieb nichts dort zu suchen. Sofern du deinen Server lokal betreibst, solltest du aus guten Gründen gar keine .htaccess benutzen.
        erzähle bitte nicht so einen Unsinn!

        Ich halte den Verweis auf die Apache-Doku keineswegs für Unsinn.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. Hi,

          Ich halte den Verweis auf die Apache-Doku keineswegs für Unsinn.

          ... und hast offenbar nicht mal den ersten Satz zuende gelesen:
          "unless you don't have access to the main server configuration file.".
          Oder glaubst Du wirklich, dass Julia ihren eigenen Server im Netz hat und dann mit einer solchen Frage kommt? (Hake diese Frage am besten als rethorisch ab und spare Dir weitere Rechtfertigungen.)

          freundliche Grüße
          Ingo

          1. hallo Ingo,

            Ich halte den Verweis auf die Apache-Doku keineswegs für Unsinn.
            ... und hast offenbar nicht mal den ersten Satz zuende gelesen:
            "unless you don't have access to the main server configuration file.".

            Es ist ein neu heruntergeladenes XAMPP. Auf dem lokalen Rechner installiert. Also besteht voller Zugriff auf "the main server configuration file". Was ja auch aus der Fragestellung hervorgeht. Die Bedingung "unless" trifft daher nicht zu.

            Wie kommst du nur auf die abstruse Idee, ich könne Apache-Dokuseiten, auf die ich verlinke, nicht ausführlich gelesen haben?

            Oder glaubst Du wirklich, dass Julia ihren eigenen Server im Netz hat

            Hat sie mit ihrem XAMPP, ist ihr vermutlich aber nicht klar. Jeder Apache ist "im Netz", sofern der Rechner, auf dem er läuft, eine aktive Verbindung hat.

            Grüße aus Berlin

            Christoph S.

            --
            Visitenkarte
            ss:| zu:) ls:& fo:) va:) sh:| rl:|
            1. Hi,

              Es ist ein neu heruntergeladenes XAMPP. Auf dem lokalen Rechner installiert. Also besteht voller Zugriff auf "the main server configuration file". Was ja auch aus der Fragestellung hervorgeht. Die Bedingung "unless" trifft daher nicht zu.

              was glaubst Du - nein, ich formuliere das diesmal besser nicht als Frage - Julia hat sich XAMPP bestimmt nicht installiert, um ihren Rechner im Internet als Webserver zur Verfügung zu stellen. Dies folgere ich unmissverständlich aus ihrer Aussage "Offline Server".

              Wie kommst du nur auf die abstruse Idee, ich könne Apache-Dokuseiten, auf die ich verlinke, nicht ausführlich gelesen haben?

              Du hast ja weder Julias Frage noch meine Antwort ausführlich genug gelesen.
              Ich betreue einige Webseiten, die auf einfachem Webspace ohne Zugriff auf die nicht optimale Server-Konfiguration liegen und daher Direktriven über .htaccess bedürfen. Da wäre es doch wirklich arg umständlich, diese Dateien auf meinem Rechner woanders unterzubringen und erst recht nicht sinnvoll, Änderungen in mod_rewrite ungetestet auf den Server im Netz zu übertragen.

              Oder glaubst Du wirklich, dass Julia ihren eigenen Server im Netz hat

              Hat sie mit ihrem XAMPP, ist ihr vermutlich aber nicht klar. Jeder Apache ist "im Netz", sofern der Rechner, auf dem er läuft, eine aktive Verbindung hat.

              genau auf diese Gefahr habe ich sie im Gegensatz zu Dir auch hingewiesn. Womit ich bestätigt bekomme, dass Du Julias Aussage "Offline Server" geflissentlich überlesen hast.

              Ich bitte Dich wirklich, Anfängerfragen demnächst genauer zu lesen und nicht so unpassend und vor allem absolut nicht hilfreich zu beantworten.

              freundliche Grüße
              Ingo

              1. hallo Ingo,

                Du hast ja weder Julias Frage noch meine Antwort ausführlich genug gelesen.

                Was soll denn dieser schwachsinnige Unfug: erst behauptest du, ich hätte die Apache-Doku, auf die ich verlinkt habe, nicht gelesen, und als du merkst, daß das Argument nicht zieht, behauptest du, ich hätte zwei postings, auf die ich eingegangen bin, nicht richtig gelesen.

                Laß doch solche Interpretationen bitte, die dir wirklich nicht gut zu Gesichte stehen.

                Ich betreue einige Webseiten, die auf einfachem Webspace ohne Zugriff auf die nicht optimale Server-Konfiguration liegen und daher Direktriven über .htaccess bedürfen.

                Ich auch. Nur ist das nicht Gegenstand des OP. Es wird explizit nach einer Fehlermeldung gefragt, die _lokal_ aufgetreten ist, und _absolut nichts_ deutet darauf hin, daß diese .htaccess auf irgendeinem Online-Webspace eingesetzt werden soll. Im übrigen hätte dir auch auffallen können, daß der Wortlaut dieser Fehlermeldung wohl kaum vom Apache über

                ErrorDocument 404 /indexx.php?page=tools/errorimage
                ErrorDocument 403 /indexx.php?page=tools/errorimage

                erzeugt werden kann. Klar, ist ja auch "Error 500". Dir scheint entgangen zu sein, daß ich nachgefragt habe, was denn genau in der .htaccess drinsteht (wie du siehst, vermeide ich sorgfältig die Formulierung "du hast nicht genau genug gelesen"). Sobald "wir" genauer wissen, was Julia nun in ihre .htaccess hineingeschrieben hat, kann man mit der Fehlersuche weitermachen. Dich aber hat der Inhalt ihrer .htaccess zumindest in den Repliken auf meine Wortmeldungen überhaupt nicht interessiert, obwohl doch genau _das_ das eigentliche Problem ist.

                Ich bitte Dich wirklich, Anfängerfragen demnächst genauer zu lesen

                Ich bitte dich wirklich, apodiktische Aussagen wie "du hast nicht gelesen" demnächst zu vermeiden und "nicht so unpassend und vor allem absolut nicht hilfreich zu beantworten".

                Grüße aus Berlin

                Christoph S.

                --
                Visitenkarte
                ss:| zu:) ls:& fo:) va:) sh:| rl:|
                1. Hi,

                  Es wird explizit nach einer Fehlermeldung gefragt, die _lokal_ aufgetreten ist, und _absolut nichts_ deutet darauf hin, daß diese .htaccess auf irgendeinem Online-Webspace eingesetzt werden soll.

                  Manches sollte man sich auch denken können... Warum installiert sich wohl jemand XAMPP? Wohl kaum, um nur lokal drauf zu experimentieren - obwohl es da sicher auch Ausnahmen gibt.

                  Im übrigen hätte dir auch auffallen können, daß der Wortlaut dieser Fehlermeldung wohl kaum vom Apache über

                  ErrorDocument 404 /indexx.php?page=tools/errorimage
                  ErrorDocument 403 /indexx.php?page=tools/errorimage
                  erzeugt werden kann.

                  nö, aber von der in der nächsten Zeile angegebenen Direktive:

                  RewriteEngine on

                  die Du seltsamer Weise in Deinem Zitat unterschlägst. Julia hat _genau_ geschrieben, welche Änderungen sie in der Konfiguration vorgenommen hat und hierbei fällt mir zumindest auf, dass offensichtlich die Aktivierung des Moduls vergessen wurde.

                  Dir scheint entgangen zu sein, daß ich nachgefragt habe, was denn genau in der .htaccess drinsteht

                  nö, aber für was

                  Hier kommen die Rewrite Befehle hin.

                  steht, ist völlig unerheblich, wenn das Modul gar nicht geladen ist.
                  Aber warte mit Deiner Rechtfertigung mal, bis Julia sich hierzu geäußert hat. Sollte ich falsch liegen oder immer noch ein Serverfehler kommen, wird Sie uns sicherlich ihre ModRewrite-Regeln zur Überprüfung mitteilen.

                  freundliche Grüße
                  Ingo

                  1. Hi,
                    ich fürchte, Julia hat sich schon verabschiedet nach diesem wenig hilfreichen Streit.
                    Vorschlag:
                    Zu jedem thread lässt sich ein paralleler thread öffnen, in dem man sich gegenseitig angiften kann. Der Originalthread bliebe dadurch übersichtlicher und die Fragestellerin müsste nicht voller Hoffnung auf Hilfe nach dem Lesen des nächsten Beitrags wieder enttäuscht auf den folgenden Beitrag hoffen.
                    Gruß
                    Bello

                    1. Oh, weh, ich wollte mit meiner Frage keinen Streit anfangen, das tut mir Leid. Und ich habe mich auch nicht verabschiedet, weil ich gestern ins Bett gegangen bin.

                      @Christoph: Mhmm, ich verstehe dich nicht ganz. Warum sagt du, ist das, was ich in der Conf Datei verändert habe, falsch? Ich das Problem gegooglet und alle Lösungen, die ich gefunden habe, waren gleich, weshalb ich auch die conf Datei dementsprechend verändert habe.

                      Hier nochmal die Veränderungen, die ich vorgenommen habe:

                      <Directory />
                      Options FollowSymLinks
                      AllowOverride FileInfo
                      </Directory>

                      # AllowOverride controls what directives may be placed in .htaccess files.
                          # It can be "All", "None", or any combination of the keywords:
                          #   Options FileInfo AuthConfig Limit
                          #
                          AllowOverride All

                      #
                          # Controls who can get stuff from this server.
                          #
                          Order allow,deny
                          Allow from all

                      "C:/xampp/cgi-bin" should be changed to whatever your ScriptAliased

                      CGI directory exists, if you have that configured.

                      <Directory "C:/xampp/cgi-bin">
                          AllowOverride All
                          Options None
                          Order allow,deny
                          Allow from all
                      </Directory>

                      LoadModule rewrite_module modules/mod_rewrite.so

                      @Ingo: Ich habe mod rewrite schon aktiviert, das habe ich vergessen bei meinem ersten Post zu erwähnen, tut mir Leid. Und ich habe jetzt im Root Ordner eine htaccess File angelegt, wie du gesagt hattest.

                      Ich habe bewusst nur den Anfang meiner htaccess File gepostet, weil nicht jeder sehen soll, wie ich meine URLs umleite/verändere.

                      ErrorDocument 404 /indexx.php?page=tools/errorimage
                      ErrorDocument 403 /indexx.php?page=tools/errorimage

                      RewriteEngine on
                      RewriteRule ^([-0-9a-z]*)/([-0-9a-z]*)/1/$  /indexx.php?&series=$2&number=1&seriesuber=$1 [NC]
                      RewriteRule ^([-0-9a-z]*)/([-0-9a-z]*)/1$ /indexx.php?&series=$2&number=1&seriesuber=$1 [NC]
                      RewriteRule ^([-0-9a-z]*)/([-0-9a-z]*)/([0-9]+)/$  /indexx.php?series=$2&number=$3&seriesuber=$1 [NC]
                      RewriteRule ^([-0-9a-z]*)/([-0-9a-z]*)/([0-9]+)$ /indexx.php?series=$2&number=$3&seriesuber=$1 [NC]
                      RewriteRule ^([-0-9a-z]*)/([-0-9a-z]*)/$  /indexx.php?&series=$2&number=1&seriesuber=$1 [NC]
                      RewriteRule ^([-0-9a-z]*)/([-0-9a-z]*)$ /indexx.php?&series=$2&number=1&seriesuber=$1 [NC]

                      Und sagt jetzt bitte nicht, dass da ein fehler sei, weil die Datei auf dem ONLINE Server einwandtfrei funktioniert. Nur auf meinem neu eingerichteten OFFLINE Server macht die htaccess datei Mist.

                      Und wie starte ich den Apache Server jetzt neu?

                      Danke im Voraus!

                      1. Hi,

                        @Ingo: Ich habe mod rewrite schon aktiviert, das habe ich vergessen bei meinem ersten Post zu erwähnen

                        ok, dann lag ich in diesem Punkt falsch.

                        Und sagt jetzt bitte nicht, dass da ein fehler sei, weil die Datei auf dem ONLINE Server einwandtfrei funktioniert. Nur auf meinem neu eingerichteten OFFLINE Server macht die htaccess datei Mist.

                        Bei meiner XAMPP-Installation funktioniert das (wenn ich in mein DocumentRoot eine indexx.php setze - ansonsten käme aber auch nur ein 404).
                        Ich bin nun kein Experte für Server-Konfiguration wie vielleicht Christoph und hatte damals auch eine Weile suchen und experimentieren müssen. Bei mir sehen die entsprechenden Einträge so aus (ohne Kommentare):

                        DocumentRoot "/homepage"  
                          
                        <Directory />  
                            Options FollowSymLinks  
                            AllowOverride FileInfo  
                        </Directory>  
                          
                        <Directory "/homepage">  
                            Options Indexes FollowSymLinks Includes ExecCGI  
                            AllowOverride All  
                            Order allow,deny  
                            Allow from all  
                        </Directory>  
                          
                        <Directory "/xampp/cgi-bin">  
                            AllowOverride None  
                            Options None  
                            Order allow,deny  
                            Allow from all  
                        </Directory>
                        

                        Und wie starte ich den Apache Server jetzt neu?

                        ob der refresh-Btton dazu reicht, weiß ich nicht. Ich würde ihn einfach stoppen und neu starten oder im Zweifelsfall Windows neu hochfahen.

                        freundliche Grüße
                        Ingo

                        1. Okie dokie!
                          Das Problem wurde gelöst!
                          Meine Dummheit sollte bestraft werden, dass ich nicht wusste wie man den Server neu startet.

                          Danke für eure Hilfe! :D