为什么我的 Apache 无法读取我的媒体文件夹,但它可以加载网站?(静态文件不起作用)

为什么我的 Apache 无法读取我的媒体文件夹,但它可以加载网站?(静态文件不起作用)
Alias /media/ /home/matt/repos/hello/media
<Directory /home/matt/repos/hello/media>
Options -Indexes
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /home/matt/repos/hello/wsgi/django.wsgi

/media 是我的目录。当我访问 mydomain.com/media/ 时,系统显示 403 Forbidden。而且,我的网站其余部分无法正常工作,因为所有静态文件都出现 404 错误。为什么?页面可以加载。只是 media 文件夹无法加载。

编辑:hello 是我的项目文件夹。我已尝试将该文件夹的所有权限设置为 777。

答案1

我解决了。我漏掉了一个斜杠。media/ 后面

答案2

这取决于别名的应用方式,但可能是所有请求都传递给了 Django。日志告诉了你什么?

尝试将 WSGIScriptAlias 更改为例如

WSGIScriptAlias /wsgi/ /...

看看会发生什么。

答案3

尝试使用Options IndexesOptions +Indexes代替Options -Indexes

Apache 文档

如果 Options 指令中的所有选项前面都有 + 或 - 符号,则这些选项将被合并。任何以 + 开头的选项都将添加到当前有效的选项中,任何以 - 开头的选项都将从当前有效的选项中删除。

答案4

Options -Indexes指令指示 Apache 不为该目录生成 中的目录列表。因此,403 Forbidden当您尝试访问 时/media/。请尝试Options +Indexes

相关内容