Cómo obtener la URL de la página actual en PHP [duplicar]


Esta pregunta ya tiene una respuesta aquí:

En PHP, ¿cómo puedo obtener la URL de la página actual? Preferiblemente solo las partes después de http://domain.com .

 128
php
Author: Click Upvote, 2009-08-16

5 answers

$_SERVER['REQUEST_URI']

Para más detalles sobre qué información está disponible en la matriz $_SERVER, vea la página de manual de PHP para ello.

Si también necesita la cadena de consulta (el bit después de ? en una URL), esa parte está en esta variable:

$_SERVER['QUERY_STRING']
 236
Author: Amber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-09 01:22:18

Si desea solo las partes de la url después de http://domain.com , prueba esto:

<?php echo $_SERVER['REQUEST_URI']; ?>

Si la url actual era http://domain.com/some-slug/some-id , echo devolverá solo '/ some-slug / some-id'.

Si quieres la url completa, prueba esto:

<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>
 71
Author: Jonas Orrico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-09 18:51:55
 $uri = $_SERVER['REQUEST_URI'];

Esto le dará el directorio y el nombre de archivo solicitados. Si usas mod_rewrite, esto es extremadamente útil porque te dice qué página estaba mirando el usuario.

Si necesita el nombre real del archivo, es posible que desee probar $_SERVER['PHP_SELF'], la constante mágica __FILE__ o $_SERVER['SCRIPT_FILENAME']. Los últimos 2 le dan la ruta completa (desde la raíz del servidor), en lugar de solo la raíz de su sitio web. Son útiles para includes y tal.

$_SERVER['PHP_SELF'] le da el nombre de archivo relativo a la raíz del sitio web.

 $relative_path = $_SERVER['PHP_SELF'];
 $complete_path = __FILE__;
 $complete_path = $_SERVER['SCRIPT_FILENAME'];
 23
Author: Tyler Carter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-16 02:16:51

Las otras respuestas son correctas. Sin embargo, una nota rápida: si está buscando agarrar las cosas después de ? en un URI, debe usar la matriz $_GET[].

 9
Author: Imagist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-16 05:28:16

Puedes usar $_SERVER ['HTTP_REFERER'] esto te dará toda la URL por ejemplo: supongamos que quieres obtener la url del nombre del sitio www.example.com entonces $_SERVER ['HTTP_REFERER'] te dará https://www.example.com

 0
Author: user2862106,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-09 09:25:59