Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je suis confronté à un problème d'URL dans mon application, elle doit être accessible depuis un réseau externe grâce à un proxy, mais l'hôte que prend l'aide de vue URL n'est pas la bonne, c'est l'hôte du réseau interne qui est utilisé (au lieu de l'hôte vers lequel le proxy redirige).
En cherchant un peu, j'ai vu que la variable $_SERVER['HTTP_X_FORWARDED_HOST'] contenait justement l'hôte exacte que je veux utiliser quand je suis en externe. J'ai donc voulu faire un fix directement dans mon application, mais après une petite recherche j'ai vu que Zend disposait d'une méthode permettant de le faire (la méthode setUseProxy de la classe ServerUrl).
Le problème est : Où et comment utiliser cette fonction ? Il y a une clé dans le fichier de conf à mettre ? Je ne trouve aucun exemple de comment faire ça
Hors ligne
Salut essaies de l'utiliser comme ça dans ta vue echo $this->serverUrl()->setUseProxy(true)
Hors ligne
Ça ne fonctionne pas, $this->serverUrl() me renvoie une chaine
Hors ligne
Il semblerait d'ailleurs que les autres aides de vue URL n'utilisent pas cette classe là, quand je fais un dump directement dans la classe je n'ai aucun résultat (sauf si j'écris $this->serverUrl()).
Hors ligne
Ah bah oui ça pouvait pas fonctionner effectivement . Là je sais pas et j'ai pas de quoi test sous la main
Hors ligne
J'ai jeté un œil sur la classe du View Helper BasePath (que j'utilise), et j'ai vu qu'il n'y a pas de calcul de chemin ou d'adresse dans celui-ci. Je suppose donc que la méthode setBasePath de cette classe a été utilisée plus tôt, tu ne saurais pas à quel moment ?
Dernière modification par Seryus (06-08-2014 10:51:39)
Hors ligne
Si tu l'as défini dans la conf ['view_manager']['base_path'] ça met cette valeur sinon ça va récupérer le basePath de la requête .
Hors ligne
Je vais devoir recomposer mon URL dans ce cas
Hors ligne
Il y a moyen de définir mon basePath via une factory ? J'en ai créé une qui récupère l'url de base en prenant en compte le proxy, mais je ne vois pas comment l'appeler :s Ou peut-être que je devrais modifier directement l'objet HTTP Request pour y changer l'host ?
Dernière modification par Seryus (07-08-2014 10:51:02)
Hors ligne
Non tu fais un factory qui créé soit un nouveau helper genre myBasePathWithProxy soit le même en utilisant la même clé dans le service manager
Hors ligne