在启用SSL的Apache 2上启用网站图标。

从HTTP迁移到SSL后,我无法再访问服务器上的favicon。
负责配置的部分如下:
<VirtualHost *:443>

        DocumentRoot /home/ubuntu/project/project/

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

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

文件夹存在,且favicon位于其中。
当我尝试访问favicon.ico时,出现403错误:
禁止访问 你没有权限在此服务器上访问/favicon.ico。
我该如何解决这个问题?
以下是输出结果:
namei -lx /home/ubuntu/project/static/favicon.icof:
/home/ubuntu/project/static/favicon.ico
Drwxr-xr-x root   root   /
drwxr-xr-x root   root   home
drwxr-xr-x ubuntu ubuntu ubuntu
drwxrwxr-x ubuntu ubuntu project
drwxrwxr-x ubuntu ubuntu static
-rw-rw-r-- ubuntu ubuntu favicon.ico

请包含namei -lx /home/ubuntu/project/static/favicon.ico的输出。 - muru
@muru 我写过的文件存在于文件夹中。输出结果为 -rw-rw-r-- ubuntu ubuntu favicon.ico - Alexander Tyapkov
@muru 我已经提供了完整的追踪。可能会有帮助 - Alexander Tyapkov
这样一来,大部分权限问题都被一次性解决了。现在轮到Apache了。我很好奇如果你访问/static会发生什么 - 那里会有任何错误吗? - muru
@muru 如果请求/static/,我会得到相同的403错误。我认为这个错误与SSL有关,因为我记得在使用HTTP时favicon是可以正常工作的。 - Alexander Tyapkov
可能是这样的。虽然您已将vhost设置为在443端口上,但它完全没有SSL配置,没有证书或任何其他内容。 - muru
@muru 正如我在问题中所写的,这只是配置的一部分。其余的部分与此无关。 - Alexander Tyapkov
2个回答

使用
chmod +r favicon.ico

在你的var/www/html文件夹中。

你能解释一下这个机制吗?执行位似乎与读取文件有点无关。 - U. Windl
你是对的,只有+r,我的错! - Antonin GAVREL

您的favicon.ico文件权限不足。
我会使用以下命令设置favicon.ico文件的权限:
chmod 505 favicon.ico
然后再次保存favicon.ico,以便更新权限。

很遗憾,您的解决方案无法正常工作。我尝试了,但仍然在思考是否应该授予x权限以显示网站图标! - Alexander Tyapkov

  • 相关问题