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