How to force an HTML link to be absolute? How to force an HTML link to be absolute? php php

How to force an HTML link to be absolute?


If you prefix the URL with // it will be treated as an absolute one. For example:

<a href="//google.com">Google</a>.

Keep in mind this will use the same protocol the page is being served with (e.g. if your page's URL is https://path/to/page the resulting URL will be https://google.com).


I recently had to do something similar.

if (strpos($url, 'http') === false) {    $url = 'http://' .$url;}

Basically, if the url doesn't contain 'http' add it to the front of the string (prefix).

Or we can do this with RegEx

$http_pattern = "/^http[s]*:\/\/[\w]+/i";if (!preg_match($http_pattern, $url, $match)){     $url = 'http://' .$url;}  

Thank you to @JamesHilton for pointing out a mistake. Thank you!


Use a protocol, preferably http://

<a href="http://www.google.com">Google</a>

Ask users to enter url in this format, or concatenate http:// if not added.

If you prefix the URL only with //, it will use the same protocol the page is being served with.

<a href="//google.com">Google</a>