# Markdown links not working without https://?

**URL:** https://meta.discourse.org/t/markdown-links-not-working-without-https/384591
**Category:** Support
**Tags:** composer
**Created:** [October 3, 2025, 2:26am UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591 "2025-10-03T02:26:49Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [October 3, 2025, 2:26am UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/1 "2025-10-03T02:26:49Z")

</div>

Did something change recently with links?

When you write [example.com](http://example.com) in a post it automatically works as a link in a post. (meaning it looks like a link and clicking on it takes you to that site).

However when you write

```plaintext
[link](example.com)

```

link

It _looks like a link_ but there is in fact no link (meaning clicking on it does nothing).

Did this change recently? Someone on our forum noticed that we have a bunch of links like this that are (now?) not working.

NOTE: My example above is when using the Markdown editor (if that wasn’t obvious). When I use the rich wysiwyg editor and just paste `example.com` in the link dialog box, the link works.

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [October 14, 2025, 8:26pm UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/4 "2025-10-14T20:26:30Z")

</div>

Are you sure that e.g. `[link](example.com)` ever worked? I know markdown containing relative links, e.g. `[link](/u)` to [link](https://meta.discourse.org/u) to the user list on a site, does work.

---

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [October 18, 2025, 4:31am UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/5 "2025-10-18T04:31:32Z")

</div>

> [@tobiaseigen](#):
>
> Are you sure

I am not! The only clue I have, if you can call it that, is that I have been frequently posting links like that to a site in that way (i.e. without the `https://`) and this is the first time anyone has ever mentioned it. Maybe no one was ever clicking on my links!

Would you agree that one should not have to include the https:// in a markdown link?

I don’t see anything in the common mark standard that mentions it: [CommonMark Spec](https://spec.commonmark.org/0.31.2/#link-destination)

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [October 18, 2025, 3:46pm UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/6 "2025-10-18T15:46:54Z")

</div>

> [@one1](#):
>
> Would you agree that one should not have to include the https:// in a markdown link?
> 
> I don’t see anything in the common mark standard that mentions it: [CommonMark Spec](https://spec.commonmark.org/0.31.2/#link-destination)

I don’t know? Honestly it has never bothered me before.

Are you aware of any other markdown system that does what you suggest?

---

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [October 18, 2025, 4:16pm UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/7 "2025-10-18T16:16:52Z")

</div>

> [@tobiaseigen](#):
>
> Are you aware of any other markdown system that does what you suggest?

Well, I just tried it in a github issue and it treated my link as a relative path, which honestly is worse than doing nothing at all.

In Joplin it treats my https-less link as a real link and goes to the right place.

Pasting the markdown into the WordPress editor also creates a relative link for the WP site.

I’m trying to think of where else I use Markdown.

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [October 18, 2025, 4:44pm UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/8 "2025-10-18T16:44:58Z")

</div>

> [@one1](#):
>
> However when you write
> 
> ```plaintext
> [link](example.com)
> 
> ```
> 
> link
> 
> It _looks like a link_ but there is in fact no link (meaning clicking on it does nothing).

Pedantically speaking, I think this the behaviour is acceptable. There’s not enough information by itself to distinguish between relative or a hostname.

> A link contains [link text](https://spec.commonmark.org/0.31.2/#link-text) (the visible text), a [link destination](https://spec.commonmark.org/0.31.2/#link-destination) (the URI that is the link destination)

`example.com` is not a valid URI by itself, even though if you type [example.com](http://example.com) by itself it’ll get turned into a link. That’s convention not specification though, since pineapple.belongson.pizza is also a valid hostname (well, it was until I let the domain expire) but doesn’t get auto-linked.

You can use:

- rooted URI  
`[rooted](/t/384591)`  
[rooted](https://meta.discourse.org/t/384591)
- relative URI (with or without ./)  
ℹ these are valid markdown, but our parser forbids it  
`[relative](../../386082)`  
relative  
`[relative](./386082)`  
relative  
`[relative](386082)`  
relative
- absolute URI  
`[absolute](https://www.example.com/foo.html)`  
[absolute](https://www.example.com/foo.html)
- schemeless URI (similar to relative, but explicitly relative to only the scheme)  
`[schemeless](//www.example.com/foo.html)`  
[schemeless](https://www.example.com/foo.html)

> [@one1](#):
>
> Well, I just tried it in a github issue and it treated my link as a relative path

Arguably, this is the correct behaviour. Without any sort of anchoring at the front, it’s a path relative to the current location, same as `[link](./example.com)`.

---

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [October 19, 2025, 1:00am UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/9 "2025-10-19T01:00:36Z")

</div>

> [@supermathie](#):
>
> even though if you type [example.com](http://example.com) by itself it’ll get turned into a link.

Yeah, that was my (hopeful!) justification for why the markdown links should also do that. But I’m slowly accepting the fact this isn’t going to happen (and that it never did).

I just tried on Reddit and without the https:// it doesn’t even make it a link at all.

I guess the only thing I would still have to suggest is that it not look like a link if it isn’t going to be a link (which is the current behaviour). This seems to be the least helpful of all options, although better than being a relative link. I think the Reddit behaviour of not being a link at all might be best, unless it can detect that it should be a relative link to something on the site itself.

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [October 19, 2025, 3:14am UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/10 "2025-10-19T03:14:18Z")

</div>

> [@one1](#):
>
> I guess the only thing I would still have to suggest is that it not look like a link if it isn’t going to be a link

I like this idea; perhaps we should unlinkify it entirely in the final baked post and put a warning in the composer preview.

[@product-managers](https://meta.discourse.org/groups/product-managers) ?

---

<div class="post-metadata">

### Author: ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)
#### Post date: [October 20, 2025, 6:39pm UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/11 "2025-10-20T18:39:54Z")

</div>

Hmm… Not that it’s a huge deal, but I’ve also gotten used to using something like`[foo]()` for illustration purposes which renders as foo.

I feel like the problem here is the mismatch in expectations given the “linkify” site setting. Not sure how best to untangle this one, but I’ll share it with folks thinking about these edges cases in the composer to that it’s at least on their radar to consider.

---

<div class="post-metadata">

### Author: ![ToddZ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/toddz/32/328350_2.png) [@ToddZ](https://meta.discourse.org/u/ToddZ)
#### Post date: [October 20, 2025, 7:19pm UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/12 "2025-10-20T19:19:16Z")

</div>

> [@mcwumbly](#):
>
> I feel like the problem here is the mismatch in expectations given the “linkify” site setting.

I wouldn’t have that mismatch, but I understand it.

I expect markdown to do exactly what I’m saying: `[link]` means render the following as a link; it’s up to me to put a valid URL in there.

I expect the composer to do a bit of magic: _this looks like it’s meant to be a URL so I’ll mark it up as a link._

This has become natural to me, but I certainly see potential for confusion. Maybe similar magic could be applied to validate the format of markdown links before linkifying them.

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [October 20, 2025, 7:21pm UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/13 "2025-10-20T19:21:10Z")

</div>

> [@mcwumbly](#):
>
> I’ve also gotten used to using something like`[foo]()` for illustration purposes which renders as foo.

If one _wants_ a link purely for demonstration purposes, one could use an anchor

```plaintext
[foo](#nowhere)

```

[foo](#nowhere)

(still a relative link, but an anchor link relative to the current page)

> [@ToddZ](#):
>
> I expect markdown to do exactly what I’m saying: `[link]` means render the following as a link; it’s up to me to put a valid URL in there.

👍

---

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [October 21, 2025, 12:35am UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/14 "2025-10-21T00:35:26Z")

</div>

> [@ToddZ](#):
>
> I expect markdown to do exactly what I’m saying

Sure. But I think that most users would expect `[link](example.com)` to create a link to `example.com`. Putting `example.com` in the browser url bar works. And just typing it into a post also works.

> [@ToddZ](#):
>
> Maybe similar magic could be applied to validate the format of markdown links before linkifying them.

That’s the magic I’m looking for 🧙

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [November 20, 2025, 12:35am UTC](https://meta.discourse.org/t/markdown-links-not-working-without-https/384591/15 "2025-11-20T00:35:31Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
