Esto es extraño, pero por alguna razón el $_SERVER["SCRIPT_URI"]
no devolverá el nombre de dominio cuando estoy en secundario/subpáginas pero solo funcionará en la página principal. No estoy seguro de si se debe a la secuencia de comandos (WordPress) o al host, pero ¿puede sugerir alguna solución confiable para recuperar el nombre de dominio con PHP?
Respuesta
Si necesita nombre de dominio, utilice:
$_SERVER['HTTP_HOST']
¡Oh, este funcionó bien! incluso con la reescritura de URL en. Gracias –
Esto puede ser debido a la reescritura de URL, puede probar $ _SERVER ['REQUEST_URI'] en su lugar si desea la ruta que se llamó en la url.
Si elige este método, tenga en cuenta que puede verse afectado por los encabezados de solicitud. –
De hecho. Hay una nueva redacción. Pero no quiero el camino, solo quiero verificar el nombre de dominio. De todos modos? –
Dependiendo de lo que quiere, que haría uso de una de las siguientes:
- $ _SERVER [ 'PHP_SELF'] para el script ubicación del archivo
- $ _SERVER [ 'SERVER_NAME'] para el nombre de host
EDITAR: Quizás PHP_SELF no es el mejor. Ver comentarios.
Como sé, usar $ _SERVER ['PHP_SELF'] es un riesgo absoluto. http://is.gd/qPcb – sepehr
Probablemente deberías usar '$ _SERVER ['SCRIPT_NAME']' en lugar de PHP_SELF. –
En caso de duda
var_dump($_SERVER);
+1 ¡El mejor consejo! –
var_dump($_SERVER)
y ver lo adapte a sus necesidades.
P.S. Haciendo uso de $_SERVER["PHP_SELF"]
unsanitized podría ser un security risk.
Si su navegador formatea JSON
documentos bien y no hay salida ha tenido lugar, insertar el siguiente dará lugar a algo más legible que var_dump
:
header('Content-Type: application/json');die(json_encode($_SERVER));
phpinfo()
también proporcionará una lista de todos los $_SERVER
valores y tales ¡mucho más!
Además, SCRIPT_URI no existe, la sintaxis correcta es REQUEST_URI:
echo $_SERVER["REQUEST_URI"];
Devuelve toda la ruta sin el host y dominio.
'SCRIPT_URI' no es necesariamente incorrecto. Está documentado en los documentos de Apache como [una variable de entorno mantenida por mod_rewrite] (http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#EnvVar). Sin embargo, como el OP ha encontrado, no siempre está configurado (por la razón que sea). Pero ... cuando está configurado, no es lo mismo que 'REQUEST_URI'. 'SCRIPT_URI' contiene un _absolute URL_, mientras que' REQUEST_URI' es un URL relativo a la raíz ("sin el host y el dominio"). – MrWhite
yo estaba utilizando $ _SERVER [SCRIPT_URI] en mi sitio web http://www.a2zidx.com y un número de subdirectorios como http://howto.a2zidx.com
he tenido ningún problema con esto durante años y tiene hoy un error en un número de sitios donde $ _SERVER [SCRIPT_URI] no fue asignado. Después de contactar con mi ISP, afirman que no han realizado ningún cambio, pero $ _SERVER [SCRIPT_URI] ya no funciona. getenv ('SCRIPT_URI') no falla pero devuelve una cadena nula. Por qué esto debería suceder de repente después de tantos años que no sé. Terminé llamando a una función para pasar por varias opciones para extraer el nombre de archivo que es lo que quería. Espero que esto cubra todo. Tenía problemas incluyendo la función, pero comprobé "SCRIPT_NAME" "PHP_SELF" "SCRIPT_FILENAME "SCRIPT_URI"
espero que su ayuda.
Si alguien sabe por qué SCRIPT_URI dejará de funcionar de repente, me gustaría saberlo. El servidor está ejecutando Apache 2.4.
Los enlaces se parecen mucho al correo basura, por favor considere reemplazarlos por otros genéricos como example.com – Norrius
- 1. Alternativa por $ _SERVER [ 'HTTP_REFERER'] variable de PHP en MSIE
- 2. información de nombre de host php segura - $ _SERVER ['HTTP_HOST'] alternativa
- 3. $ _SERVER ['HTTP_HOST'] no establecido
- 4. PHP: $ _SERVER ['REDIRECT_URL'] frente a $ _SERVER ['REQUEST_URI']
- 5. alternativa al subclipse conector maven scm (no funciona con subclipse1.8)?
- 6. ¿Existe $ _SERVER ['HTTP_X_REQUESTED_WITH'] en PHP o no?
- 7. Mensaje: Índice no definido: REMOTE_HOST en $ _SERVER
- 8. $ _SERVER ['PHP_AUTH_USER'] está vacío
- 9. Cron Job $ _SERVER issue
- 10. $ _SERVER ['REMOTE_ADDR'] que no da la dirección IP correcta
- 11. ¿por qué mi encabezado ("Ubicación: $ _SERVER ['HTTP_REFERER']"); La función de PHP no funciona?
- 12. $ _SERVER ['DOCUMENT_ROOT'] no funciona en el script php que se ejecuta en cron
- 13. ¿Cuál es la diferencia entre $ _SERVER ['PATH_INFO'] y $ _SERVER ['ORIG_PATH_INFO']?
- 14. SendKeys alternativa que funciona en Citrix
- 15. Codeigniter y $ _SERVER
- 16. codificación de $ _SERVER vars?
- 17. $ _SESSION creado pero no hay PHPSESSID en $ _SERVER ['HTTP_COOKIE']
- 18. no funciona
- 19. ¿Se puede falsificar $ _SERVER ['SERVER_NAME']?
- 20. Fiabilidad de PHP $ _SERVER [ 'REMOTE_ADDR']
- 21. ¿Sigue siendo viable $ _SERVER ['REQUEST_METHOD']?
- 22. ¿Está $ _SERVER ['REMOTE_ADDR'] siempre isset()?
- 23. ¿es necesario validar $ _SERVER ['REMOTE_ADDR']?
- 24. Notación IPV6 de $ _SERVER ['REMOTE_ADDR']
- 25. $ _POST vs. $ _SERVER [ 'REQUEST_METHOD'] == 'post'
- 26. Cómo trabajar con $ _SERVER ['QUERY_STRING']
- 27. ¿Es seguro confiar $ _SERVER ['REMOTE_ADDR']?
- 28. PHP $ _SERVER ['REMOTE_ADDR'] muestra IPv6
- 29. Sesiones PHP No funciona
- 30. Establecer un valor de PHP $ _SERVER ($ _SERVER ['algo']) usando Apache .htaccess
Puede haber estado pensando en '$ _SERVER ['REQUEST_URI']' – Kzqai
@Kzqai 'SCRIPT_URI' está documentado en los documentos de Apache como [una variable de entorno mantenida por mod_rewrite] (http://httpd.apache.org/ docs/2.2/es/mod/mod_rewrite.html # EnvVar) - por lo tanto, debe estar presente en el superglobal '$ _SERVER'. Sin embargo, como el OP ha encontrado, no siempre está configurado (por la razón que sea). – MrWhite