mod_rewrite machts falsch

W

Wolfsbein

Aktives Mitglied
Thread Starter
Dabei seit
10.11.2003
Beiträge
616
Reaktionspunkte
9
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 bearbeitet von einem Moderator:
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

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

Hallo :)
 
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]

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.
 
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:
Hilarious schrieb:
...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...
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.
 
So ich bin jetzt soweit: Das Problem mit mod_rewrite bleibt:
The requested URL /Users/Pizza/Sites/kunden/abc/index.php
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 :(.
 
Ich tippe darauf, das es einProblemchen gibt mit relativen und absoluten
pfaden. Wie sieht den dein doc root aus ?

gruss
Kruemel
 
/localhost/ gibt einen 403, aber geht. Das liegt aber auch an einer Servereinstellung, weil er .htm nicht kennt. Wenn ich in .html umbenne gehts natürlich.
 
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.
 
Zurück
Oben Unten