mod_rewrite machts falsch

Dieses Thema im Forum "Web Page Design" wurde erstellt von Wolfsbein, 08.06.2005.

  1. Wolfsbein

    Wolfsbein Thread Starter MacUser Mitglied

    Beiträge:
    614
    Zustimmungen:
    9
    MacUser seit:
    10.11.2003
    Hallo

    ich habe einen Apache unter Mac OS 10.4.1 laufen. Der gesammte www Ordner stammt von meinem Windowsrechner auf dem alles auch einwandfrei hingehauen hat. Die Anleitung unter http://www.four54.com/deheus/petrik/blog/post/33/ habe ich befolgt, wobei das bereits alles richtig war. Wenn ich jetzt eine Seite aufrufen will, die mod_rewrite über .htaccess nutzt, dann steht im error log folgendes:
    ... File does not exist: /Library/WebServer/Documents/Users/Pizza/Sites/kunden/.../index.php (mod_rewrite wird also ausgeführt, der Server findet aber dann die Datei nicht)
    Ich weiß jetzt nicht ob das ein Link ist, aber meine Seiten liegen auf jeden Fall unter
    /Users/Pizza/Sites
    genau so wie es in /etc/httpd/users/Pizza.conf auch drinsteht.
    Jetzt bin ich mit meinem Latein am Ende. Woran könnte es noch liegen? Vielen Dank.
     
    Zuletzt von einem Moderator bearbeitet: 10.11.2015
  2. Hilarious

    Hilarious MacUser Mitglied

    Beiträge:
    2.195
    Zustimmungen:
    5
    MacUser seit:
    25.11.2004
    Apache per 'apachectl restart' neu gestartet?
    Hat die Fehlermeldung wirlich drei Punkte im Pfad (wirklich 3)?
    Kannst Du vielleicht ein wenig mehr zu Deiner .htaccess-Datei sagen?
    Hast Du eventuell 'RewriteBase' falsch gesetzte?
    Hast Du schon mal in der Doku oder bei http://www.modrewrite.de/ geschaut?

    Edit: Ich vergaß, ein Hallo drüberzusetzen. Daher drunter:

    Hallo :)
     
  3. Wolfsbein

    Wolfsbein Thread Starter MacUser Mitglied

    Beiträge:
    614
    Zustimmungen:
    9
    MacUser seit:
    10.11.2003
    Servus

    die Fehlermeldung hat natürlich nicht drei Punkte im Pfad. Der ist in Wirklichkeit viel länger. Was aber hier egal sein sollte.
    RewriteBase ist gar nicht gesetzt. Das brauch ich weder unter Windows noch auf dem Linuxserver. Und meine Datei schaut z.B. so aus:
    Code:
    
    RewriteEngine On
    Options +FollowSymLinks
    #RewriteBase /
    
    RewriteCond  %{QUERY_STRING} ^(show=404)$ [OR]
    RewriteCond  %{QUERY_STRING} ^$
    
    # 1. Regel
    RewriteRule ^_(de|en)\.htm$ index\.php?lang=$1&%{QUERY_STRING} [L]
    
    Ein Aufruf von http://127.0.0.1/~Pizza/kunden/.../_en.htm (hier ist ein _)
    liefert dann einen 404
    The requested URL /Users/Pizza/Sites/kunden/.../index.php was not found on this server.
    Mitlerweile stimmt also der Pfad und die Datei liegt auch da. Warum er trotzdem den Fehler bringt, ka :(. Die Datei funktioniert im Übrigen, von wegen Rechte und so. Wenn man sie nämlich ohne mod_rewrite anspricht tut sie genau das was sie soll.
     
  4. Hilarious

    Hilarious MacUser Mitglied

    Beiträge:
    2.195
    Zustimmungen:
    5
    MacUser seit:
    25.11.2004
    Ja, Wolfsbein, vermutlich ist es dies:

    Du verwendest in Deiner Regel Backslashes. Das UNIX-Dateisystem verwendet statt dessen allerdings Forward-Slashes (die über der 7 auf der Tastatur), genauso, wie du sie auch im Browser benutzt.

    EDIT: Ups, hab nicht richtig hingesehen. Du verwendest die ja nur, um die Punkte zu escapen. Das obige ist dann natürlich Käse. Sorry ;)
     
    Zuletzt bearbeitet: 08.06.2005
  5. Wolfsbein

    Wolfsbein Thread Starter MacUser Mitglied

    Beiträge:
    614
    Zustimmungen:
    9
    MacUser seit:
    10.11.2003
    Glaub mir ich kenne mich mit dem Zeug aus ;) Ich frage ja nur weil ich es mir auch absolut nicht erklären kann.
    EDIT: Und das ganze geht sowohl unter Linux als auch Windows.
     
  6. Wolfsbein

    Wolfsbein Thread Starter MacUser Mitglied

    Beiträge:
    614
    Zustimmungen:
    9
    MacUser seit:
    10.11.2003
    So ich bin jetzt soweit: Das Problem mit mod_rewrite bleibt:
    The requested URL /Users/Pizza/Sites/kunden/abc/index.php
    Aber wenn ich z.B. http://localhost/~Pizza/kunden/abc/gibEsNicht
    aufrufe, dann sieht die Fehlermeldung etwas anders aus:
    The requested URL /~Pizza/kunden/abc/gibtEsNicht was not found on this server.
    Für mich sieht das jetzt so aus, als ob mod_rewrite absolut auf die Verzeichnisstruktur mapt. Denn bei einem Aufruf ohne mod_rewrite wird ja relativ über den Link ~Pizza gesucht. Jetzt ist zwar ~Pizza ein Link auf /Users/Pizza/Sites, aber irgendwo hier muss der Hund begraben liegen :(.
     
  7. Kruemel_ddorf

    Kruemel_ddorf MacUser Mitglied

    Beiträge:
    811
    Zustimmungen:
    2
    MacUser seit:
    17.02.2004
    Ich tippe darauf, das es einProblemchen gibt mit relativen und absoluten
    pfaden. Wie sieht den dein doc root aus ?
    geht http://localhost/~Pizza/ ???

    gruss
    Kruemel
     
  8. Wolfsbein

    Wolfsbein Thread Starter MacUser Mitglied

    Beiträge:
    614
    Zustimmungen:
    9
    MacUser seit:
    10.11.2003
  9. Wolfsbein

    Wolfsbein Thread Starter MacUser Mitglied

    Beiträge:
    614
    Zustimmungen:
    9
    MacUser seit:
    10.11.2003
    Problem geloest. Es liegt daran, dass MacOS beim Anlegen eines neuen Users zwar eine eigene httpd.conf Datei anlegt, aber den DocumentRoot _nicht_ anpasst. Das erklaert die 404er die im Uebrigen nur im Log den korrekten Pfad aufweisen. Der Browser gibt den Pfad aus in dem die Datei wirklich liegen wuerde, wenn der Server auch dort nachsehen wuerde. Ich wuerde fast sagen ein Bug :D.
     
Die Seite wird geladen...

Diese Seite empfehlen