Url rewriting 出于开发目的将url解析为其他url

Url rewriting 出于开发目的将url解析为其他url,url-rewriting,iis-5,iis-express,resolve,Url Rewriting,Iis 5,Iis Express,Resolve,我同时使用asp和asp.net页面。我想在本地iis v5.1中托管该应用程序,但后来了解到iisexpress适合我的需要。但无论我使用的是iis 5.1还是iis express,我似乎都有一个问题 我使用的asp页面指的是驻留在不同虚拟目录中的静态资源css、javascript等。例如,css文件include如下所示 <link rel="stylesheet" href="/common/include/style/css.css"/> 这与我的主应用程序所在的位置相

我同时使用asp和asp.net页面。我想在本地iis v5.1中托管该应用程序,但后来了解到iisexpress适合我的需要。但无论我使用的是iis 5.1还是iis express,我似乎都有一个问题

我使用的asp页面指的是驻留在不同虚拟目录中的静态资源css、javascript等。例如,css文件include如下所示

<link rel="stylesheet" href="/common/include/style/css.css"/>
这与我的主应用程序所在的位置相反。这看起来像:

http://testing/myapp/default.aspx
现在,如果我在端口8082中运行iisexpress,会有一个入站请求,如:

http://localhost:8082/common/inlcude/style/css.css
它将遇到404错误。是否可以指示iss或iis express解析以/common/…开头的url。。。说http://testing/common/...

更新日期:2011年5月31日下午7:04 IST: 我一直在研究什么是url重写,从这些例子中我了解到了一些事情。我不确定我想要的是重新编写url本身。再次以iisexpress为例,我知道会有一个入站请求uri,如:

http://localhost:8082/common/inlcude/style/css.css
但我希望它实际上由以下uri提供:

http://testing/common/include/style/css.css
我使用iisexpress虚拟化的文件夹中不存在前一个uri

我需要在这里重新写入url吗

此外,在ASP中,我还包括以下行:

<!-- #include virtual="/common/include/classes/utils.asp" -->
甚至这些事情都应该解决到相应的程度http://testing/... 同行


ps:我正在做的一切都是在ASP.NET 2.0以后的iis 5.1中进行的。您可以使用tilde操作符~它用于指定应用程序的根位置。例如:

<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="<%=Session("RootPath")%>/common/include/style/css.css"/>
在生产环境中,您可以全局地将会话值RootPath设置为/MyApp,但对于测试,将其保留为空字符串。您可以在global.asa中的会话启动中执行此操作。您也可以使用应用程序范围的值ApplicationRootPath。这只适用于ASP页面

URL重写-如果您有静态HTML页面,那么URL重写可以起到解救作用。您需要将在您的开发PC上工作的绝对url重写为在生产服务器上使用的路径。所以基本上每次你看到a href=/common/。。。您已重写为href=/myapp/common/。。。。IIS6不支持即时重写,您需要一个第三方工具,如或。IIS 7.x不支持通过URL重写


你好我不确定url重写是否是这里需要的。我已经更新了我的问题。
<link href="Styles/Site.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="<%=Session("RootPath")%>/common/include/style/css.css"/>