2010-11-30 5 views
0

Mon site Web de base html statique pour entreprise est installé dans notre répertoire racine Web et notre logiciel de facturation est installé dans/portal. J'ai intégré les sites Web pour ressembler à un seul site en incluant le fichier modèle smarty /menu.tpl dans le fichier /portal/header.tpl. Cependant, si j'utilise des URL relatives, le système de menu ne fonctionne pas comme l'URL de base pour le script de facturation est/portal. c'est-à-dire si je crée un lien vers faq.php dans le menu.tpl et que je charge une page sur le site portail, le lien dans le menu retour vers la page faq est maintenant /portal/faq.php par lequel si je charge une page le site racine du lien est juste /faq.php comme il se doit.Comment utiliser les URL relatives dans le site Web avec deux URL de base

La réponse évidente est simplement d'utiliser des URL absolues, mais j'ai besoin que le site soit portable car j'ai beaucoup de développeurs qui ont besoin de l'installer et de le tester.

Je ne peux pas trouver de toute façon pour résoudre ce problème. Des idées?

Répondre

0

je suis tombé sur le même problème que vous il y a un moment, et après avoir essayé beaucoup d'impasses, je me suis finalement retrouvé avec la solution suivante:

  1. Pour toute URL que vous devez être un chamelion, c'est-à-dire changer son chemin en fonction de l'environnement, insérer une fonction PHP qui écrit l'URL correcte.
  2. Si vous incluez la fonction PHP à partir d'un seul fichier central, vous pouvez modifier automatiquement toutes les URL de l'ensemble du site, en fonction d'un paramètre ou d'un commutateur pré-détecté tel que le nom de domaine actuel, etc ...

Exemple:

<?php print_base_url_plus("/menu.php"); ?> 

... où print_base_url_plus() est une fonction qui ajoute l'URL de base sur la sortie.

Vous pouvez trouver que vous devez changer certaines des URL pour être php, afin qu'ils soient pré-traités par le moteur PHP, ou, vous pouvez modifier les paramètres web afin que les fichiers .htm standard soient acheminés via le moteur PHP, juste comme les fichiers .php.

Questions connexes