Get the full URL in PHP

php, url

Solution

Have a look at `$_SERVER['REQUEST_URI']`, i.e.

$actual_link = "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

(Note that the double quoted string syntax is perfectly correct.)

If you want to support both HTTP and HTTPS, you can use

$actual_link = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

⚠️ This code has security implications because the client and the server can set `HTTP_HOST` and `REQUEST_URI` to arbitrary values. It is absolutely necessary to sanitize both values and do proper input validation (CWE-20). They must not be used in any security context.

Problem

I use this code to get the full URL: ``` $actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ``` The problem is that I use some masks in my `.htaccess`, so what we see in the URL is not always the real path of the file. What I need is to get the URL, what is written in the URL, nothing more and nothing less—the full URL. I need to get how it appears in the Navigation Bar in the web browser, and not the real path of the file on the server.

Original source

Related problems