Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the full URL of a Drupal page?

People also ask

How do I find the URL of a Drupal site?

You can use url() to generate a base url to any route in Drupal. You can supply the <front> route which, in effect, will be your base URL.

How can I get full page URL?

Answer: Use the window. location. href Property location. href property to get the entire URL of the current page which includes host name, query string, fragment identifier, etc.


drupal_get_destination() has some internal code that points at the correct place to getthe current internal path. To translate that path into an absolute URL, the url() function should do the trick. If the 'absolute' option is passed in it will generate the full URL, not just the internal path. It will also swap in any path aliases for the current path as well.

$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));

This is what I found to be useful

global $base_root;
$base_root . request_uri();

Returns query strings and it's what's used in core: page_set_cache()


You can also do it this way:

$current_url = 'http://' .$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

It's a bit faster.


Try the following:

url($_GET['q'], array('absolute' => true));

This method all is old method, in drupal 7 we can get it very simple

    current_path()
  • http://example.com/node/306 returns "node/306".
  • http://example.com/drupalfolder/node/306 returns "node/306" while base_path() returns "/drupalfolder/".
  • http://example.com/path/alias (which is a path alias for node/306) returns "node/306" as opposed to the path alias.

and another function with tiny difference

request_path()
  • http://example.com/node/306 returns "node/306".
  • http://example.com/drupalfolder/node/306 returns "node/306" while base_path() returns "/drupalfolder/".
  • http://example.com/path/alias (which is a path alias for node/306) returns "path/alias" as opposed to the internal path.
  • http://example.com/index.php returns an empty string (meaning: front page).
  • http://example.com/index.php?page=1 returns an empty string.

I find using tokens pretty clean. It is integrated into core in Drupal 7.

<?php print token_replace('[current-page:url]'); ?>