我正在尝试在文件夹(博客管理员)上强制执行SSL。这部分很好 - 所有页面都是SSL,但该网站正在为页面上的不安全内容生成错误消息。我可以单独查看所有这些链接,以在链接上强制执行SSL。 我想知道是否可以通过htaccess单独完成吗? 这是我在管理文件夹上执行SSL强制执行的操作:
#forcing https for admin folder
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} admin
RewriteRule ^(.*)$ https://mysite.com/blog/admin/$1 [R,L]
如何在同一页面上将所有非ssl链接转换为ssl?
另外:
1)我正在使用带有不同插件的wordpress 3.6。只有管理区域是SSL,其余部分除了登录页面(在管理员之外也是SSL)之外是非SSL(例如最终用户的博客供稿)。
2)一些不安全的内容来自我自己的网站,但是还有一些内容来自我正在使用的插件。例如disqus评论系统和flickr。
3)我可以通过在wordpress上使用'setting for permalink'来强制显示图像,css和jscript的内部链接(注意到url是以http而不是https提供的)。同样,我可以找到并修复其他链接,如下所示:
https://mysite.com/blog/wp-login.php处的页面内容不安全 从 http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js?ver=3.6
4)问题是:
答案 0 :(得分:0)
重写规则(实际上是重定向,当它涉及HTTP到HTTPS时)无济于事,因为当初始的普通HTTP请求到达服务器时,为时已晚。
这是您所服务的页面上必须解决的链接。这通常取决于在服务器上运行的应用程序(例如,您的PHP / CGI应用程序),而不是服务器本身。服务器需要能够处理它发送的响应内容以替换这些链接,而不仅仅是重定向请求(如mod_rewrite
那样)。
mod_proxy_html
(与Apache 2.4一起发布或在早期版本中单独发布)是一个可以深入处理响应的模块,但我不确定它是否可以用作后处理工具对于在同一服务器上运行的PHP,重写它发送的链接。
当然,这不会修复到https://
无法提供的外部资源的链接。