Pregunta

Actualmente estoy trabajando en un sitio de Drupal (6 *), que cuando está en el modo de producción se accede a través de algún tipo de proxy HTTP, lo que significa que tendrá que volver a escribir todos los enlaces para mi tema personalizado si el $_SERVER['HTTP_X_FORWARDED_SERVER'] variable se establece en el dominio gente va a acceder al sitio de.

El sitio tiene una gran cantidad de enlaces internos, principalmente a través de Views. Mi pensamiento es que la manera más fácil de resolver esto sería a enganchar en las funciones del url() l() y / o y el proceso posterior de la URL antes de devolverla si se ha establecido HTTP_X_FORWARDED_SERVER.

Mi problema es que no puedo encontrar la manera de gancho en estas funciones, o si es posible incluso sin tocar el núcleo, ¿alguien ha tenido que hacer esto? ¿Cómo lo resuelve?

ACTUALIZACIÓN: supongo que olvidó mencionar que el proxy no se encuentra en el nivel raíz del dominio proxy, así que tengo que volver a escribir todas las URLs (enlaces internos y caminos generados por el sistema de archivos CSS y las imágenes, etc.)

Ejemplos:

proxy.com/path -> site.com/lots/of/dirs

proxy.com/path/node/1 -> site.com/lots/of/dirs/node/1

proxy.com/path/sites/all/themes/mytheme/my.css -> site.com/lots/of/dirs/sites/all/themes/mytheme/my.css

¿Fue útil?

Solución

No estoy seguro si entiendo muy bien lo que necesita, pero yo creo que se debe echar un vistazo a la custom_url_rewrite_inbound () y custom_url_rewrite_outbound () funciones.

Otros consejos

Acabé tener que modificar el núcleo ligeramente, en sustitución de la línea de abajo en bootstrap.inc

$server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.')))));

con

$host = $_SERVER['HTTP_X_FORWARDED_HOST'] ? $_SERVER['HTTP_X_FORWARDED_HOST'] : $_SERVER['HTTP_HOST']; 
$server = explode('.', implode('.', array_reverse(explode(':', rtrim($host, '.')))));

A continuación, Acabo de crear una nueva carpeta de sitio con mi proxy.com URL y cambiado $base_url y $cookie_domain en el settings.php

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top