Ich habe ein Problem mit einer RewriteRule, die (mehr oder weniger) in HTML-View mit einem Browser funktioniert, aber nicht als WebDav-Dienst mit einem Client (Davfs oder Cadaver unter Linux). Mein Gefühl ist, dass es mit der RewriteRule zusammenhängt.Apache falsch RewriteRule für WebDAV-Dienst
Was ich tun möchte: Von der URL-Perspektive: Haben Sie einen Ordner/Benutzer/jemand, wo jemand der einzelnen Benutzernamen ist. Und ich möchte eine Verknüpfung/private haben, die direkt auf die/users/myusername Verzeichnis verweist, wo ich Schreibzugriff habe. Im Dateisystem habe ich/storage/davroot für die DAV und DocumentRoot und/storage/davusers für alle Benutzerverzeichnisse. Beachten Sie, dass die Benutzer-Verzeichnisse nicht innerhalb des DocumentRoot sind, was es ein wenig schwierig macht.
Meine aktuelle Lösung ist dies:
# It's NOT working with the RewriteCond -- why?
# RewriteCond %{LA-U:REMOTE_USER} ^[a-z].*
RewriteRule ^\/private(.*)$ /users/%{LA-U:REMOTE_USER}$1 [PT]
<Directory /storage/davroot/>
# some settings for the rights, do not care
</Directory>
Alias /users /storage/davusers/
<Directory "/storage/davusers/">
# some other settings for the rights, also don't care
</Directory>
Was richtig ist: Fast die gesamte Browser-Ansicht korrekt ist. Außer einem Problem: Die URL/private/wird korrekt aufgelistet, die URL-Leiste bleibt/private/(gewünschtes Verhalten). Aber die URL/private wird in/users/username/übersetzt und auch die URL-Leiste ändert sich zu dieser Adresse. Warum?
Wenn ich mich mit einem Webdav-Client (davfs) anmelde, wird das Thema sogar noch seltsamer. Der private Ordner ist leer, auf den Benutzerordner kann nicht zugegriffen werden. Mit Kadaver kann nicht auf den privaten Ordner zugegriffen werden und der Benutzerordner wird korrekt angezeigt.