2010-03-24 51 views
1
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。爲什麼?頁面加載。只是不是媒體文件夾。爲什麼我的Apache看不到我的媒體文件夾?

編輯:hello是我的項目文件夾。 我已經試過777該文件夾的所有權限。

+0

我認爲這是權限問題。 '文件夾中的chmod 666',它應該可以正常工作。 – 2010-03-24 10:39:03

+0

nope,我已經完成了chmod 777,但它仍然不起作用。 – TIMEX 2010-03-24 10:48:32

+0

但是,它確實在我的Django開發服務器上工作。 – TIMEX 2010-03-24 10:50:20

回答

4

您禁用了索引,因此當您請求目錄/介質時(而不是顯示403 Forbidden錯誤),Apache不會生成這些文件的列表。嘗試在那裏直接訪問文件,例如:http://localhost/media/some_image.jpg

+0

我試着訪問它。這是404。 – TIMEX 2010-03-24 10:35:52

+2

@alex:你真的在'/ home/matt/repos/hello/media'中有一個名爲'some_image.jpg'的文件嗎? – mojbro 2010-03-24 10:39:20

+0

是的,我喜歡。這是404。我猜這是與Alias有關,因爲Apache訪問我的頁面並加載它。只有靜態的東西是404。 – TIMEX 2010-03-24 10:45:59

0

如果內存正確地爲我提供服務,Apache將在它自己的用戶帳戶下運行。您確定此帳戶對該目錄具有正確的權限嗎?

+0

是的。它訪問一切正常。只是沒有那個媒體文件夾。 – TIMEX 2010-03-24 10:38:15

0

它的所有關於短跑Options -Indexes ,這裏是一個完整的Editon到你

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 

隨意刪除:)

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 
1

我解決它。我錯過了一個斜線。之後媒體/

相關問題