CentOS 上的 WebDAV - 嘗試上傳時出現 403 錯誤

CentOS 上的 WebDAV - 嘗試上傳時出現 403 錯誤

我將 Apache2 配置為允許在目錄上使用 WebDav (CentOS 5 / Plesk 8.6):

  • WebDav 在 httpd.conf 中啟用
  • /var/lib/dav/lockdb 可由 Apache 寫入
  • 我的目標目錄是 chmod 777
  • 我的目標目錄是 chowned apache:psacln
  • 使用基本身份驗證(透過 Plesk 介面設定)

在我的 vhost.conf 中我有:

<目錄 /var/www/vhosts/domain.com/httpdocs/target_dir>
        戴夫安
    允許覆蓋無
        訂單允許、拒絕
        允許所有
</目錄>

我可以使用身份驗證精細連接到該目錄並從中下載檔案。但我無法寫入該目錄。當我嘗試上傳或建立目錄時收到 403 錯誤。

有人有建議嗎?

提前致謝 -

更新 - 6/5使用下面的評論,我已將問題隔離為與 .htpasswd 受保護目錄的某種類型的衝突。我可以建立一個不受保護的目錄並啟用 WebDAV 上傳。但是,一旦我在目錄上啟用基本身份驗證,一切都會出錯。我可以閱讀但不再上傳。

這是我的 vhost.conf:

<目錄/var/www/vhosts/domain.com/subdomains/subdomain/httpdocs/>
        AuthUserFile /var/www/.htpasswd
        驗證名“登入”
        AuthType 基本
        需要有效用戶

        數位音訊開啟
    允許覆蓋無
        <限制 PUT POST DELETE PROPFIND PROPPATCH MKCOL 複製移動鎖定解鎖>
                需要有效用戶
        </限制>
</目錄>

更新6/6

能夠以最小的努力讓 WebDAV 在不同的網域上運作。這兩個域之間的唯一區別是,在拒絕允許寫入存取的域中,我有一個 DocumentRoot 指令:

    文檔根 /var/www/vhosts/domain.com/httpdocs/app/webroot

這可能會導致一些問題嗎?

答案1

我最近在 Fedora 10 系統上遇到了同樣的問題。就我而言,罪魁禍首是我在 Apache 中所做的一些奇怪的重定向。具體來說,我使用內容管理系統(確切地說是 Drupal),其 .htaccess 中包含以下重定向邏輯,將遺失的檔案重定向到 PHP 腳本:

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

上面的內容只影響 PUT 方法是有道理的,因為在這種情況下 REQUEST_FILENAME 不存在。

Drupal 區域內沒有 WebDAV 區域(這似乎是一個合理的限制)解決了這個問題。

另外,我認為 SELinux 可能會導致不同的錯誤,但上面的討論中沒有提到。您是否嘗試停用 SELinux?

答案2

同樣的問題。解決方法:

<Location /xyz>
    DAV On
    AuthType Digest
    AuthName "webdav-xmarks"
    AuthDigestProvider file
    AuthUserFile "/home/xy/xba/digest-password"
    Require valid-user
    RewriteEngine off <-- this part solved it!
</Location>

答案3

同樣的問題。

透過在 webdav 目錄中建立 .htaccess 檔案來解決:

RewriteEngine off

在這裡找到:http://annoyingtechnicaldetails.wordpress.com/2007/07/20/webdav-vs-drupal-htaccess-redirect-rules/

答案4

您是否嘗試使用限制:(例如)

  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require valid-user
  </Limit>

相關內容