为什么我的Apache看不到我的媒体文件夹?

时间:2010-03-24 10:32:47

标签: python linux django apache unix

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。为什么?页面加载。只是不是媒体文件夹。

编辑:你好是我的项目文件夹。 我已经尝试了777该文件夹的所有权限。

5 个答案:

答案 0 :(得分:4)

您已禁用索引,因此当您请求目录/媒体时,Apache不会生成文件列表(而是显示403 Forbidden错误)。尝试直接在其中访问文件,例如:http://localhost/media/some_image.jpg

答案 1 :(得分:3)

在我看来,WSGIScriptAlias / /home/matt/repos/hello/wsgi/django.wsgi告诉apache所有/下的所有内容都应由指定的WSGI脚本处理。这还包括/媒体。你应该告诉apache从该规则中排除/媒体。

尝试将此添加到配置文件中:

<LocationMatch "^/media/">
SetHandler None
</LocationMatch>

或者制作一个与/ media下的文件匹配的正则表达式,并用这个替换你的WSGIScriptAlias行:

WSGIScriptAliasMatch <regex> /home/matt/repos/hello/wsgi/django.wsgi

答案 2 :(得分:1)

我解决了。我错过了一个尾随斜线。在媒体/

之后

答案 3 :(得分:0)

如果内存正确地为我服务,Apache会在它自己的用户帐户下运行。您确定此帐户对该目录具有正确的权限吗?

答案 4 :(得分:0)

全部关于短划线Options -Indexes 这是你的完整版

 Alias /media/ /home/matt/repos/hello/media
<Directory "/home/matt/repos/hello/media">
    Options Indexes
    AllowOverride all
    Order Deny,Allow
    Allowfrom all
</Directory

我想添加

AllowOverride all

随意删除它:)