2012-05-05 46 views
1

我有一個在Dreamhost上使用Django構建的網站,成功部署了Passenger和Apache。我有一組靜態HTML頁面,這些頁面被重新命名爲/demo/的子目錄中。通過添加.htaccess文件到/demo/目錄這一行:PassengerEnabled關閉和密碼保護目錄在Dreamhost上使用Django使用.htaccess

PassengerEnabled off

我能夠繞過Django和服務於/demo/目錄下的靜態頁面。我想補充的密碼保護到/demo/頁面,而無需編輯Django的Python文件,但無法通過添加以下行至.htaccess文件(上方和下方的PassengerEnabled off線這樣做:

AuthUserFile /public/demo/.htpasswd 
AuthGroupFile /dev/null 
AuthName "Private Demo Area" 
AuthType Basic 
require valid-user 

我我不是被迫使用.htaccess文件的方法,並想知道如何配置靜態文件目錄不被Django處理,但也有密碼保護?謝謝!

+1

爲什麼又一次您不希望靜態文件目錄不能通過Django提供? Django的settings.py文件(在您的主Django目錄中)允許設置靜態文件夾。 – Paragon

+1

我不希望對已經運行的Django文件進行任何更改。這是一個演示應用程序,它只會是臨時的,所以我正在尋找不涉及修改這些文件的解決方案。 – bamana

回答

1

我發現一個解決方案,涉及創建一個子域,而不是嘗試通過Django和Passenger通過重新映射的子目錄提供靜態文件。下面是我做的:

  • 創建子域demo.domain.com在Dreamhost的網絡小組
  • 新增.htaccess文件至子站點的根目錄:

    的AuthUserFile /公/演示/ htpasswd的 目錄AuthGroupFile的/ dev/null的 AuthName指令 「私人演示區」 基礎進行AuthType需要 有效的用戶

這樣做的伎倆,但我的演示的域名是demo.domain.com而不是domain.com/demo/。我對這種交易很滿意,這是我在Dreamhost共享主機上找到的唯一解決方案。