我有一个我在内部 WAMP 服务器上开发的站点,并且托管在异地(大概在 Apache 服务器上)。该站点是在 WAMP 服务器的根目录 (C:\wamp\www) 中创建的。我现在正试图将内部开发站点移动到 Windows Home Server v1 机器上(本质上是运行 IIS 6 的 Server 2003 机器)。我试图没有两个不同版本的站点:一个用于内部(在 IIS 上),一个用于托管异地(在 Apache 上)。
在 WHS 机器上,我有一个虚拟目录<sitename>
位于:
c:/inetpub/<sitename>
我可以在服务器上访问它:
Localhost/<sitename>
并从 LAN 上的任何地方:
<ServerName>/<sitename>
当我最初编写该站点时,我对几乎每个文件、路径、目录和 PHP 包含文件都使用了 ../ 声明。这在 WAMP 服务器和异地主机上运行良好。但是,当我将站点移动到虚拟目录<sitename>
时,它在 IIS 服务器上失败了。
所有此类 ../ 引用都指向服务器根目录:
<ServerName>/
而不是网站主页:
<ServerName>/<sitename>
据推测,我可以将站点移动到“根”目录:c:/inetpub/wwwroot,但 Windows Home Server 将其用于其他目的。
我可以将每个引用从 ../ 更改为../<sitename>/
,但这意味着要维护 2 个不同的站点,一个用于内部,一个用于异地。
所以,我的问题是......
- 有没有办法声明虚拟目录
c:/inetpub/<sitename>
是这个单一站点的主目录或根目录?IIS 中是否有一个配置可以为这个虚拟目录执行此操作,并且不会扰乱此服务器上托管的其他站点?
如果不;
- 有人可以指出我重写网站的其他方式,以便让它在 Apache 和 IIS 6 上运行,而对两个不同的服务器没有/最小的改动?
我一直在寻找一个多星期的时间。我发现的所有解决方案都特定于 Apache 或 IIS,但在两者中都不起作用。
谢谢!