在Apache 2.4上使用SSL

时间:2017-01-18 19:24:07

标签: django apache

我有Django应用程序,可以通过它提供favicon。但不推荐使用Apache。

以前我有HTTP 80配置。从HTTP转移到SSL 443后,我无法再访问服务器上的favicon。

负责配置的部分如下:

<VirtualHost *:443>

        DocumentRoot /home/ubuntu/project/project/

        Alias /favicon.ico /home/ubuntu/project/static/favicon.ico
        Alias /static/ /home/ubuntu/project/static/

        <Location />
           Require host mysite.com
        </Location>

        <Directory /home/ubuntu/project/static>
            Require all granted
        </Directory>
    </VirtualHost>

文件夹存在且favicon位于其中。

当我尝试访问favicon.ico时,我得到403:

Forbidden
You don't have permission to access /favicon.ico on this server.

我该如何解决?

更新

  1. 我发现here使用SSL忽略ServerAliases,因此也可能忽略别名。

  2. Here是一个很好的概述如何使用Django提供favicon,但我想只使用Apache来减少对Django的请求数量。

  3. Here一些开发人员建议我查看favicon权限,但这没有帮助。

  4. 问题出在根位置指令中,该指令限制对整个网站的访问。如果有人知道如何为favicon做例外,请将其发布给答案!

2 个答案:

答案 0 :(得分:0)

我的解决方案是删除:

    <Location />
       Require host mysite.com
    </Location>

而是使用:

    <Directory  /home/ubuntu/project/project>
       Require host mysite.com
    </Directory>

它帮助提供了favicon,但我仍然不喜欢它,因为我已经删除了根URL上的主机检查。欢迎任何其他解决方案!

答案 1 :(得分:0)

参数中指定的路径不是URL的一部分,而是服务您的应用程序的文件系统的一部分。