如何在网站中使用具有两个基本URL的相对URL

时间:2010-11-30 00:48:57

标签: apache mod-rewrite smarty

我的基本公司静态html网站安装在我们的网络根目录中,我们的计费软件安装在/ portal中。通过在/portal/header.tpl文件中包含/menu.tpl智能模板文件,我已将网站集成为单个站点。但是,如果我使用相对URL,则菜单sysem不起作用,因为记帐脚本的基本URL是/ portal。即如果我在menu.tpl中创建faq.php的链接并在门户网站上加载页面,菜单中返回faq页面的链接现在是/portal/faq.php,如果我加载页面根网站链接只是/faq.php应该是。

显而易见的答案是使用绝对URL,但我需要网站可移植,因为我有许多开发人员需要安装和测试它。

无论如何我无法解决这个问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我遇到了与你不久前相同的问题,在尝试了很多死路之后,我终于得到了以下解决方案:

  1. 对于您需要成为chamelion的任何URL,即根据环境更改其路径,请插入一个写出正确URL的PHP​​函数。
  2. 如果您从单个中心文件中包含PHP函数,则可以根据设置或某些预先检测到的开关(例如当前域名等)自动更改整个站点中的所有URL。 / LI>

    示例:

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

    ...其中print_base_url_plus()是一个将基本URL附加到输出的函数。

    您可能会发现必须将某些URL更改为php,因此它们由PHP引擎进行预处理,或者,您可以更改Web设置,以便通过PHP引擎传输标准的.htm文件,比如.php文件。