2012-05-05 47 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共享主机上找到的唯一解决方案。