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该文件夹的所有权限。
答案 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
随意删除它:)