我有一个django应用程序,我想应用SSL的管理页面。因为管理页面是唯一需要SSL的页面,所以我想使用apache配置文件而不是SSLMiddleware来实现这一点。我的(部分) apache配置文件如下所示:
<VirtualHost *:80>
.
.
DocumentRoot /home/www/sites_django/wmssite
.
<Directory "/home/www/sites_django/wmssite">
.
</Directory>
<Location "/admin">
RewriteEngine On
RewriteRule ^/(.*) https://www.whitemoorstudio.pvm/admin [L,R=301]
</Location>
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "/usr/local/etc/apache22/www_whitemoorstudio_pvm.crt"
SSLCertificateKeyFile "/usr/local/etc/apache22/www_whitemoorstudio_pvm.key"
.
.
</VirtualHost>TLD .pvm是一个本地TLD,我只是用它在我的内部网络上进行测试。
我已经设置了一个自我签名的证书,它工作得很好……说大也大吧。奇怪的是,由于某些原因,当重写到https时,它无法在/media目录中找到媒体文件,没有图像,没有css,没有js。apache错误日志告诉我它正在目录/usr/local/www/apache22/data/media中查找:
[Sat Nov 06 20:45:18 2010] [error] [client 192.168.1.134] File does not exist: /usr/local/www/apache22/data/media, referer: https://www.whitemoorstudio.pvm/admin/当我不重写https时,管理媒体目录/usr/local/www/apache22/media。此目录介质是一个逻辑链接:
media -> /usr/local/lib/python2.5/site-packages/django/contrib/admin/media我不知道为什么在没有SSL的情况下它会查找:
/usr/local/www/apache22/media在以下位置使用SSL:
/usr/local/www/apache22/data/media最后一个目录不存在!
有谁知道吗?
发布于 2010-11-07 07:37:11
问题已经解决了。在VirtualHost *:443容器中添加内容时
我忘了指定DocumentRoot指令,所以它是在主httpd.conf中指定的。
它在VirtualHost *:80容器中运行得很好,因为在那一节中我指定了DocumentRoot。
在httpd.conf中,它被指定为: DocumentRoot "/usr/local/www/apache22/data“
https://stackoverflow.com/questions/4115590
复制相似问题