Hi Michael,

On 11.01.2012 17:06, Michael Renner wrote:
Moin,

auf einem Apache 2.2.21 funktioniert der WebDAV-Upload mit

* konquerror (Linux getestet)
* WebDrive (XP getestet)
* curl (XP getestet)

Der Upload mit dem Dateiexplorer funktioniert nicht. Wohl aber der
Download. Zum Vergleich habe ich die WebDAV-Installation mit Apache 2.0
die abgelöst werden soll. Dort funktioniert der Upload (dafür gibt es
andere Probleme).

Der Upload (Dateiexplorer) funktioniert unter Apache 2.0:
1.2.3.4 - renner[11/Jan/2012:15:51:42 +0100] "HEAD
/renner/in/avi/Finanzkrise.pdf HTTP/1.1" 404 -
1.2.3.4 - renner[11/Jan/2012:15:51:43 +0100] "PUT
/renner/in/avi/Finanzkrise.pdf HTTP/1.1" 201 204

Der Upload (Dateiexplorer) funktioniert nicht unter Apache 2.2
1.2.3.4 192.168.0.100 - renner [11/Jan/2012:15:52:33 +0100] "HEAD
/renner/in/avi/Finanzkrise.pdf HTTP/1.1" 302 - "-" "Microsoft Data
Access Internet Publishing Provider DAV"

Das anfängliche HEAD soll wohl prüfen ob die Datei am Ziel bereits
existiert. Der funktionierende Apache gibt ein 404 (also "Not Found")
zurück. Der nicht funktionierende gibt ein 302 (also "Found") zurück.
Die Datei lag jeweils nicht im Verzeichnis. Im error-Log steht auch
richtig:

File does not exist: /space/dav/htdocs/renner/in/avi/Finanzkrise.pdf

Immerhin funktioniert das Umbenennen einer Datei wenn sie erstmal auf
dem Apache 2.2 liegt:
1.2.3.4 192.168.0.100 - renner[11/Jan/2012:16:07:41 +0100] "MOVE
/renner/in/avi/Finanzkrise.pdf HTTP/1.1" 201 207 "-" "Microsoft Data
Access Internet Publishing Provider DAV"

In der httpd.conf steht u.a.

BrowserMatch "Microsoft Data Access Internet Publishing Provider"
redirect-carefully
BrowserMatch "Microsoft Data Access Internet Publishing Provider DAV"
redirect-carefully
was aber nicht ursächlich ist. Ich kommentierte das mal rein und raus.
Ohne dass der Upload dann funktionierte.

Im alten (funktionierenden) Apache gibt es noch das mod_msfix. Das lässt
sich aber auch ausschliessen, denn versuchsweise habe ich es auf der
alten Umgebung abgeschaltet und der Upload funktioniert (nach einem
Neustart) noch immer.

Ansonsten ist konfigutiert (hier wie dort):
<Directory "/space/dav/htdocs/renner">
Options +All
AllowOverride None
order allow,deny
allow from all
DAV On
DavDepthInfinity on
AuthName "Login area"
AuthType Basic
<Limit GET PUT POST OPTIONS DELETE PROPFIND PROPPATCH MKCOL COPY MOVE
LOCK UNLOCK>
Require user renner
</Limit>
AuthUserFile /space/dav/var/htpasswd
</Directory>

Versucht hatte ich auch <Limit HEAD GET PUT POST OPTIONS DELETE PROPFIND
PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>, das machte aber keinen
Unterschied. Auch nicht das vollständige auskommentieren des Limit-Blocks.

Nun frage ich mich: warum gibt der alte Apache ein korrektes 404 zurück,
der neue aber einen 302?

Gibt's eine Idee?
Bin für jeden Denkanstoss dankbar!

302 ist nicht "Found" sondern ein Redirect. Nimm doch mal %{Location}o in Dein LogFormat fürs AccessLog auf. Dann siehst Du, wohin der Apache den Client redirecten möchte. Das gibt uns evtl. eine Idee.

Dann würde ich auch den User-Agent loggen, damit wir checken können, ob das redirect-carefully überhaupt den User-Agent "Microsoft Data Access Internet Publishing Provider" etc. matcht. Hierzu in das LogFormat noch aufnehmen: \"%{User-Agent}i\".

Dann poste doch nochmal die so erweiterten Access-Log-Zeilen.

Gibt der Client eigentlich noch eine Fehlermeldung aus?

Dann kannst Du noch den LogLevel auf debug setzen, evtl. ist dann im ErrorLog noch eine Erkenntnis zu gewinnen. Ich weiß leider nicht, ob mod_dav ein vernünftiges debug-Log schreibt.

Grüße

Rainer

--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de" unsubscribe-Anfragen an users-de-unsubscr...@httpd.apache.org
          sonstige Anfragen an users-de-h...@httpd.apache.org
--------------------------------------------------------------------------

Antwort per Email an