php - 将 http 流量重定向到 https 并避免混合内容警告

标签 php .htaccess ssl ssl-certificate

我的网站最近安装了 SSL 证书。 .htaccess 文件目前强制所有流量使用 http 并且整个站点中有许多硬编码链接,包括对 cssjavascript 文件。

仅更改 .htaccess 文件以将所有流量重定向到 https 是否安全?我猜这会给我混合内容警告,因为某些链接将通过 http 而不是 https 提供。

我在想也许最好先更改所有指向 src="//www.mysite.com" 的链接,然后再更改 .htaccess 文件。我很高兴更新 httpd.conf 文件以包含 SSL 更改是更好的做法,我只是不想破坏实时站点。

我还注意到,有时刷新页面时并不总是下载 cssjavascript 更改,但如果我查看页面源并单击源文件,它下载和网站工作正常。显然我想在直播时避免这种情况。

最好的前进方向是什么?

最佳答案

只是将 .htaccess 更改为重定向到 https 并不能解决您的问题。浏览器可能仍会在您的 html 中看到 http 并产生混合内容警告。

您将必须浏览您的模板并切换到相关链接,或者切换到//或 https://

您的静态 css 和 js 文件没有立即更新的事实是因为浏览器缓存了这些文件。

在开发期间,您可以使用 ctrl+F5 硬刷新页面以从服务器获取新副本。

第一个解决方案是将 ?v=1 之类的内容附加到文件 url。这将强制在每次更改版本时下载文件。 但请记住,旧浏览器可能根本不会缓存带有 GET 参数的文件。

super 安全的方法是在 url 的静态端设置版本。

喜欢/js/assets.v1.js

手动执行任何这些选项可能很乏味,但它会很有效。

有些工具可以在您每次构建 Assets 时自动执行此操作,但您可能需要对模板进行更多修改才能使其正常工作。这实际上取决于您使用的是什么。

关于php - 将 http 流量重定向到 https 并避免混合内容警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51285997/

相关文章:

php - PHP 语句中的 SQL 变量

php - 如何确保始终只使用干净的 URL?

java - httpclient jar 冲突。如何解决?

javascript - 如何在 Node.js 0.11.8 及更高版本中使用 tlsSocket.renegotiate(options, callback)

javascript - Trustpilot cross-origin error with carousel integration

php - 提交表单后如何使下拉菜单值仍处于选中状态?

apache - 重定向所有以 "/"结尾的 url

linux - 某些 Htaccess 命令阻止了我的 linux cron 作业

apache - mod_ssl 警报握手失败

php - 从 MySQL 中的 BLOB 读取 pdf 内容