Na verdade, o problema era algo diferente: o diretório contém um arquivo index.html
e o Apache httpd estava entregando-o automaticamente.
Configuração
DirectoryIndex disabled
resolveu o problema.
Eu tenho um diretório ( /var/www/dental-atelier.ch/
) que gostaria de tornar acessível de duas maneiras diferentes.
Como uma página da web normal
<VirtualHost 78.47.122.114:80>
ServerAdmin [email protected]
DocumentRoot /var/www/dental-atelier.ch
<Location />
Options +Includes
</Location>
ServerName dental-atelier.ch
ServerAlias dental-atelier.ch www.dental-atelier.ch
ErrorLog logs/dental-atelier.ch-error_log
CustomLog logs/dental-atelier.ch-access_log combined
</VirtualHost>
e uma vez com WebDav (mas desta vez com SSL)
<VirtualHost _default_:443>
DocumentRoot "/var/www/html"
# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
<Directory /var/www/html>
Options +Includes
</Directory>
Alias /webdav /var/www/webdav
<Directory /var/www/webdav/dental-atelier.ch/>
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/shadow
Require user user
DAV On
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
Isso estava funcionando sem nenhum problema com o httpd 2.2.
Após a atualização para o 2.4, o httpd não está permitindo as duas configurações para o mesmo diretório. O primeiro trabalha sozinho (com o primeiro vhost) e o segundo sozinho com o segundo. Se eu configurar os dois, recebo
$ cadaver https://78.47.122.114/webdav/dental-atelier.ch
WARNING: Untrusted server certificate presented for 'ip1.corti.li':
Certificate was issued to hostname 'ip1.corti.li' rather than '78.47.122.114'
This connection could have been intercepted.
Issued to: ip1.corti.li
Issued by: http://www.CAcert.org, CAcert Inc.
Certificate is valid from Thu, 10 Apr 2014 10:43:34 GMT to Sat, 09 Apr 2016 10:43:34 GMT
Do you wish to accept the certificate? (y/n) y
Authentication required for Password Required on server '78.47.122.114':
Username: user
Password:
Could not access /webdav/dental-atelier.ch/ (not WebDAV-enabled?):
405 Method Not Allowed
Connection to '78.47.122.114' closed.
dav:!>
Alguma idéia de como tornar um diretório compartilhado por HTTP também disponível via WebDAV (para edição)?
Os logs do host virtual SSL mostram erros sobre a diretiva Includes
que é especificada no host virtual não-SSL (porta 80):
ssl_access_log:
129.132.179.107 - - [19/Feb/2015:15:40:29 +0100] "OPTIONS /webdav/dental-atelier.ch/ HTTP/1.1" 401 381
129.132.179.107 - user [19/Feb/2015:15:40:34 +0100] "OPTIONS /webdav/dental-atelier.ch/ HTTP/1.1" 200 -
129.132.179.107 - user [19/Feb/2015:15:40:34 +0100] "PROPFIND /webdav/dental-atelier.ch/ HTTP/1.1" 405 261
ssl_error_log:
[Thu Feb 19 15:40:34.556872 2015] [include:warn] [pid 29499] [client 129.132.179.107:65259] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /webdav/dental-atelier.ch/index.html
[Thu Feb 19 15:40:34.557949 2015] [include:warn] [pid 29499] [client 129.132.179.107:65259] AH01374: mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed: /webdav/dental-atelier.ch/index.html
Editar
O problema está realmente relacionado a ter o mesmo diretório usado de maneira diferente em dois hosts virtuais diferentes. Se eu copiar o mesmo diretório para /var/www/webdav/test
e configurar o host virtual SSL com o diretório test
, tudo funcionará como um encanto.
O mesmo se aplica se eu remover o host virtual HTTP do mesmo diretório.
Se eu tiver os mesmos dados em ambos, de alguma forma, o Apache httpd detecta isso. Não foi assim em 2.2.
Tags webdav apache-httpd