上下文:
我最近将一个站点移到了新主机,并将 SSL 证书从旧主机移到了新主机。代码是用 PHP 编写的,是很多年前不再可用的人弄得一团糟。因此,我希望找出与服务器配置相关的东西来解决问题,这样我就不必对相当困惑的代码进行逆向工程。
问题:
当用户导航到使用 https://的站点区域时,一切都按计划进行。但是,当他们单击导航中通常指向站点的 http://部分的链接时,就会出现问题。悬停时,您可以看到目标 URL 错误地包含“https://”。当用户尝试前往前面带有 https://的非安全区域时,无论是通过单击其中一个已更改的链接还是将其键入浏览器的地址栏,他们都会被重定向到没有任何域的目录。例如,如果您尝试转到“https://domain.org/site/”,浏览器将仅重定向到“/site”,当然找不到。
理论解:
Plesk 中是否有管理 https“粘性”的设置?解决此问题的一种方法是阻止非安全链接获取 https://。
当通过 https://访问不安全区域时,网站用于重定向的任何脚本或文件都会中断,是否有明显的原因?是否有服务器设置可以通过旧服务器在新服务器上使此功能有所不同?
我无权查看旧服务器的确切配置。这可能是由于 PHP 版本不同造成的吗?如果是这样,是否怀疑问题出在哪里?
是否有一些 .htaccess 的解决方法可以在通过 https://访问站点时将站点的所有安全区域(除了某些安全区域)手动重定向到 http://,大概是在站点的重定向脚本被激活之前?
感谢您的帮助!
最佳答案
对于旧版本,您可以创建 .htaccess 文件,它会根据引荐来源网址将请求从 https 页面重写为 http:
重写引擎开启
RewriteCond %{HTTP_REFERER} ^ https://domain.org [数控]
重写规则 ^(.*)$ http://domain.org/ $1 [L,R=301]
关于apache - 是否有管理 https ://behavior? 的 Apache/Plesk 服务器设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18092427/