我有一个SSL文件夹以及我网站的非SSL部分。
如果我在我的SSL文件夹中,引用SSL“包装器”之外的任何不安全图像会在FF中显示“您正在查看的页面部分在通过Internet传输之前未加密”。预期
我通常处理此问题的方法是在SSL文件夹中制作我的images文件夹的副本。但这可能会成为管理员的噩梦,因为我有两套图像需要更新。
是否可以使用其他方法引用内容?也许使用PHP的文档根?推荐的方法是什么?
答案 0 :(得分:1)
如果你在Linux机器上,那么你可以使用symlink将整个httpdocs文件夹别名到https
目录。
ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
这被描述为
ln -s source_file link_name
这样,httpdocs中的所有内容都可以通过httpsdocs提供给服务器,而无需复制任何内容。显然,如果你不想整个符号链接,你可以只对符号链接你的图像目录。
您可以在无法更新虚拟主机容器的框中使用此功能。
这当然会导致对http和https的所有访问都可以访问同一文档根目录中的文件。
将vhost配置更改为:
# Virtual Hosting
<VirtualHost *:80>
<IfModule mod_ssl.c>
SSLEngine off
</IfModule>
Include /etc/apache2/server-vhost.conf
</VirtualHost>
# SSL Virtual Hosting
<VirtualHost *:443>
<IfModule mod_ssl.c>
SSLEngine on
SSLOptions +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
</IfModule>
Include /etc/apache2/server-vhost.conf
</VirtualHost>
然后创建/etc/apache2/server-vhost.conf
,由上面两个vhost配置中的Include
行引用:
ServerName example.org
ServerAdmin example@example.org
DocumentRoot /var/www/vhosts/example.org/httpdoc
答案 1 :(得分:0)
您可以使用图像的相对路径。在他的情况下,将使用与页面本身相同的协议,HTTPS页面的HTTPS和HTTP页面的HTTP来请求图片。
编辑:
由于我们不知道目录结构,我添加了一个我的意思的小例子。
root/http/index.html
root/https/index.html
root/img/button.png
如果我们在root/http/index.html
中有一个文件root/img/button.png
和一张图片,我们可以使用相对路径../img/button.png
,无论页面位于http还是https子目录中,这都会有效