Php SSL文件夹-访问不安全的内容

Php SSL文件夹-访问不安全的内容,php,ssl,Php,Ssl,我的站点有一个SSL文件夹和一个非SSL部分 如果我在我的SSL文件夹中,引用SSL“包装器”之外的任何不安全图像,我会在FF中看到“您正在查看的页面的某些部分在通过Internet传输之前未加密”。预料之中 我通常处理这个问题的方法是在SSL文件夹中复制我的images文件夹。但这可能会成为管理员的噩梦,因为我有两组图像要更新 是否可以使用不同的方法引用内容?也许使用PHP的文档根?推荐的方法是什么?Symlink 如果您在linux机器上,那么可以使用别名将整个httpdocs文件夹别名到h

我的站点有一个SSL文件夹和一个非SSL部分

如果我在我的SSL文件夹中,引用SSL“包装器”之外的任何不安全图像,我会在FF中看到“您正在查看的页面的某些部分在通过Internet传输之前未加密”。预料之中

我通常处理这个问题的方法是在SSL文件夹中复制我的images文件夹。但这可能会成为管理员的噩梦,因为我有两组图像要更新

是否可以使用不同的方法引用内容?也许使用PHP的文档根?推荐的方法是什么?

Symlink 如果您在linux机器上,那么可以使用别名将整个httpdocs文件夹别名到
https
目录

ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
这被描述为

ln -s source_file link_name
这样,httpdocs中的所有内容都可以通过httpsdocs提供给服务器,而无需复制任何内容。显然,如果你不想符号链接整个地段,你可以只是符号链接你的图片目录

ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
您可以在无法更新虚拟主机容器的框中使用此选项

更改虚拟主机配置 这当然会导致对http和https的所有访问都从同一文档根目录访问文件

ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
将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>
符号链接 如果您在linux机器上,那么可以使用别名将整个httpdocs文件夹别名到
https
目录

ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
这被描述为

ln -s source_file link_name
这样,httpdocs中的所有内容都可以通过httpsdocs提供给服务器,而无需复制任何内容。显然,如果你不想符号链接整个地段,你可以只是符号链接你的图片目录

ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
您可以在无法更新虚拟主机容器的框中使用此选项

更改虚拟主机配置 这当然会导致对http和https的所有访问都从同一文档根目录访问文件

ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
将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>

您可以使用图像的相对路径。在他的例子中,图片将使用与页面本身相同的协议进行请求,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子目录中,这都会起作用。

您可以对图像使用相对路径。在他的例子中,图片将使用与页面本身相同的协议进行请求,HTTPS用于HTTPS页面,HTTP用于HTTP页面

ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc
编辑:

由于我们不知道目录结构,我添加了一个小示例来说明我的意思

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子目录中,这都会起作用。

这不起作用。这些文件位于两个完全不同的文件夹中。他需要复制这些图片,或者像我的回答那样将它们符号化,以便能够使用你的想法
HTTPS
httpsdocs
获取所有信息,而
HTTP
httpdocs
获取信息,因此,如果您从HTTPS获取相对URL,它将在错误的目录中查找,因为图像位于
httpdocs
@Treffynnon中-也许您是对的,但从这个问题上看不出这一点。如果两个目录(HTTPS目录和HTTP目录)位于同一级别,则可以使用图像目录的相对路径(如../img/home.png)。如果他们处于不同的层次,也许移动他们会更容易,就像寻找困难的解决方案一样。这可以用于多个目录中的所有共享资源。但是该图像目录将位于文档根目录之外,因此不可保存。我仍然看不出你的建议会起什么作用。那仍然行不通。请参阅我之前的评论:
…该图像目录将位于文档根目录之外,因此不可保存。不能以这种方式引用文档根目录上方的文件。您指定的图像文件夹无法通过web访问,因此无法使用。@Treffynnon-比方说使用
root
我的意思与您使用
document root
的意思相同,那么就没有问题了。我有时确实是这样用的。为什么monkey64想要为SSL使用不同的目录是另一个问题。这是行不通的。这些文件位于两个完全不同的文件夹中。他需要复制这些图片,或者像我的回答那样将它们符号化,以便能够使用你的想法
HTTPS
httpsdocs
获取所有信息,而
HTTP
httpdocs
获取信息,因此,如果您从HTTPS获取相对URL,它将在错误的目录中查找,因为图像位于
httpdocs
@Treffynnon中-也许您是对的,但从这个问题上看不出这一点。如果两个目录(HTTPS目录和HTTP目录)位于同一级别,则可以使用图像目录的相对路径(如../img/home.png)。如果他们处于不同的层次,也许移动他们会更容易,就像寻找困难的解决方案一样。这可以用于多个目录中的所有共享资源。但是该图像目录将位于文档根目录之外,因此不可保存。我仍然看不出你的建议会起什么作用。那仍然行不通。请参阅我之前的评论:
…该图像目录将位于文档根目录之外,因此不可保存。不能以这种方式引用文档根目录上方的文件。您指定的images文件夹无法通过web访问,因此无法使用。@Treffynnon-比方说使用
root
i mea
ln -s /var/www/vhosts/example.org/httpdoc /var/www/vhosts/example.org/httpsdoc