I have a Flask web-application with lots of products. Some of the product names have a "/" in them. For the URL of the products with a slash in them, I am using URLencoding to solve this issue. So, an example of a URL is:
<a href="https://www.example.com/indProduct/productdb&#47;new">click</a>
And in developer tools, if you inspect that button, it renders:
<a href="/indProduct/productdb%26%2347%3Bnew">click/a>
This works perfectly. I can click the button and it takes me to the product. However, I am using SEMrush to audit my website, and it is raising the issue that this button is a "Broken internal link". The URL that it gives that shows it as broken is:
https://www.example.com/indProduct/productdb&#47;new
How do I fix this? The website works completely fine. There are no broken links anywhere. But for some reason, SEMrush logs that as a broken internal link...
Some servers will actually decode URLs thus making the URL encoding pointless in the main URL. You can pass your product name in a GET parameter or you can replace the forward slash with a different character and then replace it back when you read it.
URLencoded shows as broken internal link