Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将http流量重定向到https,避免混合内容警告_Php_.htaccess_Ssl_Ssl Certificate - Fatal编程技术网

Php 将http流量重定向到https,避免混合内容警告

Php 将http流量重定向到https,避免混合内容警告,php,.htaccess,ssl,ssl-certificate,Php,.htaccess,Ssl,Ssl Certificate,我有一个最近安装了SSL证书的站点。.htaccess文件目前强制所有流量使用http,整个站点有许多硬编码链接,包括对css和javascript文件的引用 将.htaccess文件更改为将所有流量重定向到https是否安全?我猜这会给我混合内容警告,因为一些链接将通过http而不是https提供 我在想,在更改.htaccess文件之前,最好先更改所有指向src=“///www.mysite.com”的链接。我很感激更新httpd.conf文件以包含SSL更改是更好的做法,我只是不想破坏实时

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

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

我在想,在更改
.htaccess
文件之前,最好先更改所有指向
src=“///www.mysite.com”
的链接。我很感激更新httpd.conf文件以包含SSL更改是更好的做法,我只是不想破坏实时站点

我还注意到,有时候刷新页面时,并不总是下载
css
javascript
更改,但是如果我查看页面源代码并单击它下载的源文件,那么站点工作正常。很明显,我想在上线时避免这种情况


前进的最佳途径是什么

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

您必须浏览模板,然后切换到相对链接、//或https://

静态css和js文件不会立即更新,这是因为浏览器会缓存这些文件

在开发过程中,可以使用ctrl+F5对页面进行硬刷新,以从服务器获取新副本

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

超级安全的方法是在url的静态端设置版本

比如/js/assets.v1.js

手动执行这些选项中的任何一个都可能是乏味的,但它将是有效的


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

由于您有SSL证书,请将所有
http
请求重定向到
https
。您还应该明确并在整个应用程序中使用
https://
(在所有
链接href
脚本src
img src
等中)。使用相关协议(只是<代码> //< /代码>)是因为所有的流量都被推荐通过 HTTPS现在。不只是重定向到HTTPS,还要考虑WWW而不是WWW版本的URL,以避免重复的内容发布。“对于正常使用来说,一个快速但不太合适的解决方案是附加类似于?v=1的东西”-以什么方式不合适?只要您不在每个请求上更改查询字符串,它仍然会缓存它,直到查询字符串更改为止,您只有在更新它时才会这样做(并强制重新加载所有缓存的css/J,它们应该是这样的)带有get变量的文件不是缓存染料,它们是。浏览器只是将其视为一个不同的文件名。为什么您认为许多大型库在通过CDN提供文件时使用此策略?这是基于一篇已有10年历史的文章。这在今天几乎是一个反问题。除非您打算支持IE6-7之类的,否则使用此策略是非常安全的使用。但很公平。这不再是失眠的问题。谢谢你给我们指出。我会更新我的答案