0

我有一台带有 IIS7 的服务器,我用它来托管几个不同的站点进行测试。由于官僚主义过多,我无法使用主机标头(我无法在我们的内部 DNS 服务器上获取新条目,用户无法更改其本地主机文件)。

我已经在 IIS 中设置了默认站点,除了具有我的站点测试版本的虚拟目录之外什么都没有

Default Site
---> TestSite1
---> TestSite2

所以当我让测试用户测试一个网站时,我告诉他们去http://testserver/testsite1

问题是这些站点到处都使用虚拟路径,因此它们无法正常工作。例如,站点正在查找使用的样式表,但由于默认站点的根目录中/css/main.css没有文件夹,因此找不到。/css有太多这样的事情需要修复来改变网站的工作方式。

IIS7 URL 重写对我有帮助吗?如果是这样,我将什么用于正则表达式模式?

4

2 回答 2

0

在这种情况下,我认为重写不会对您有所帮助。

如果您可以更改代码,则可以执行添加

<base href="http://testserver/testsite1/" /><head>您的主模板的标签(如果有的话),因此绝对根 / 将始终解析为正确的虚拟目录。

我还看到人们使用类似get_img('button.jpg')这样的代码,它将通过服务器端逻辑解析正确的路径。

于 2009-10-01T21:46:53.677 回答
0

URL 重写只会为您提供虚拟路径。他们将帮助翻译传入的请求以到达正确的应用程序页面,但他们将无法调整该应用程序内的任何内部服务器相对绝对链接以访问正确的 URL。

您可能需要考虑类似反向代理的东西,您的测试服务器有许多虚拟应用程序充当底层应用程序的代理。它可以处理响应并将嵌入的 URL 重新写入正确的 URL 路径(例如,<base href=''>按照 Richard 的建议插入标签或更改实际的 html 链接)。我相信可能有开箱即用的反向代理,但我没有任何经验。如果您需要有关此选项的帮助,我建议您转至Serverfault,因为设置此类内容更多面向服务器而不是与编程相关。

于 2009-10-01T21:51:23.477 回答