使自动链接的URL使用HTTPS

我尝试过谷歌搜索,但找不到答案。当我在句子中输入像 discourse.org 这样的域名时,它会变成一个链接。这是一个 HTTP 链接:

有没有办法默认将其设置为 HTTPS?我想在不手动将它们转换为 HTTP 链接的情况下消除混合内容错误。

1 个赞

有一个 force_https 站点设置。在标准安装中,它默认启用。

那么这里没有启用吗?即使是 meta.discourse.org 的直接链接在这里也是 HTTP 链接。我将在其他论坛上验证一下是否属实。

从我看到的代码来看,force_https 默认是 false。

force_https 站点设置在这里丢失。根据我在这里的阅读:

这是因为启用了 HTTPS。我使用 Let’s encrypt。

似乎默认情况下,文本链接是 HTTP,您无法更改。如果在新行上添加它,它将成为 HTTPS 链接。例如:

已确认,像这样发布的链接使用的是 http即使 force-https开启 的。

我可能是错的,但我认为那是因为oneboxer在那样放置时会跟随所有重定向,而对于行内链接则不会。

1 个赞

那么,最大的问题是……我们能改变这种行为吗?如今 HTTPS 几乎已成默认设置:

discourse.orgmeta.discourse.org 是被监控的词语,会自动替换为链接。也许那里没有使用 https 链接。:thinking:

1 个赞

我不相信那是真的,例如,在 google.comapple.com 上也会表现出相同的行为。

对我来说,似乎没有协议的内联链接会默认回退到 http。(所以 https://google.com 可以正常工作)

你说得对。 :thinking:

说得对。将此行为从 HTTP 改为 HTTPS 会更合理,对吧?

1 个赞

除非最近有什么变化,否则指向不安全网站的链接不会触发混合内容错误。

混合内容错误指的是构成页面的资源。如果您的网站是 https 但从不安全源加载资源,那么您将提供混合内容。

Force_https 指的是您的 discourse 网站及其内部链接。

新行上的链接会进行“onebox”(即显示预览),而不仅仅是链接。要做到这一点,必须“加载”该链接并检查目标处的默认文档。如果网站通过 http 使用 https,则会发生重定向。

3 个赞

我不认为你会想要这样。

虽然这确实很高,这是好事,但我不认为 85% 的比例足以改变你论坛的默认行为。

据我所知,几乎所有的(我敢打赌 99% 以上)https 网站都会将所有 http 请求重定向到 https 网站。

反之则不然。

这意味着链接到 http://example.com 几乎从来都不是问题,因为你最终还是会访问 https://example.com


就像 @Stephen 一样,我认为你可能关注错了地方。据我所知,有一个 <a> href="http... 链接不会触发混合内容警告。

这个错误应该只由在你的 https 网站中嵌入非 https 内容触发。所以加载外部图片可能是原因,或者嵌入第三方脚本,主题中的某些东西?
最好深入查看浏览器控制台,看看是什么触发了错误 :slight_smile:

6 个赞

让我解释一下。我们的许多用户会在论坛回复中输入我们的域名。我们还将论坛回复嵌入到主站点中,因此现在我有一些 HTTP 内部链接而不是 HTTPS。这并不是一个大问题,但如果我能让它们也变成 HTTPS,那就太好了。

这是正确的,它不会触发混合内容警告 :slight_smile:

有什么我能做的吗?除了监控回复和可能编写一个脚本来更新 URL :slight_smile:

您可以使用已关注的字词将裸主机名替换为网址

我没意识到这是可能的,但这听起来是个好主意。我会试试的。如果还有其他人也在找这个:

…/admin/customize/watched_words/action/replace

我认为这两个功能可能不兼容。如果我没记错的话,markdown linkify tlds 似乎会优先执行,并且不允许链接被监视词替换。

1 个赞