Apache 目录和别名

Apache 目录和别名

由于没有收到任何回复,我已将其从 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。

相关内容