
由于没有收到任何回复,我已将其从 stackoverflow 移至 serverfault。
我在我的服务器上创建了以下文件夹:
MyIPAddress/var/www/webdav/calendars
我已将以下内容添加到我的 /etc/apache2/sites-available/default.conf 文件中:
Alias /webdav "/var/www/webdav"
<Directory /var/www/webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
</Directory>
# calendars
Alias /calendars "/var/www/webdav/calendars"
<Directory /var/www/webdav/calendars>
DAV On
AuthType Basic
AuthName "My Calendar Directory"
AuthUserFile /etc/apache2/users.password
Require valid-user
</Directory>
然后我尝试使用以下路径的 WebDAV 连接到“日历”文件夹:
http://MyIPAddress/var/www/webdav/calendars
但这并不管用。
仅当我像这样设置 default.conf 时它才有效:
<Directory /webdav/var/www/webdav/calendars>
但我不明白为什么。第二种方法中的目录路径
/webdav/var/www/webdav/calendars
不存在。应该是
/var/www/webdav/calendars
反而。
有人看到我的错误或知道为什么只有错误路径方法有效吗?
谢谢你!
答案1
我认为您误解了 Alias 指令的含义。为什么要/var/www/webdav/calendars
在 URL 中指定整个路径?
根据您的别名指令,日历文件夹应该可以在http://MyIPAddress/calendar
和 webdav上访问。http://MyIPAddress/webdav
Alias /calendars "/var/www/webdav/calendars"
意味着 URL 中包含 /calendars 的所有内容都将取自 /var/www/webdav/calendars。
例如文件http://.../calendars/folder/bla.gif
将从/var/www/webdav/calendars/folder/bla.gif
如果您不添加别名,/calendars
那么 apache 将在 DocumentRoot + /folder/bla.gif 中搜索 bla.gif。