Iis 7 基于根URL的IIS URL重写

Iis 7 基于根URL的IIS URL重写,iis-7,web-config,rewrite,relative-path,url-rewriting,Iis 7,Web Config,Rewrite,Relative Path,Url Rewriting,我正在尝试重写url: www.mydomain.com/urlfolder/filename.aspx 指 www.mydomain.com/urlfolder/newfile.aspx 我的web配置包含以下内容: <rule name="PageRedirection" enabled="true" stopProcessing="true"> <match url="urlfolder/filename.aspx" /> <a

我正在尝试重写url:

www.mydomain.com/urlfolder/filename.aspx

www.mydomain.com/urlfolder/newfile.aspx

我的web配置包含以下内容:

    <rule name="PageRedirection" enabled="true" stopProcessing="true">
      <match url="urlfolder/filename.aspx" />
      <action type="Redirect" url="urlfolder/newfile.aspx" redirectType="Permanent" />
    </rule>

问题在于,这会捕获URL,例如:

www.mydomain.com/subdirectory/urlfolder/filename.aspx

我试图将我的url更改为 但是,这个方法不起作用。指定根也似乎不起作用

我将如何从根目录中指定此url,而不放入绝对路径

我还有:

testsite.mydomain.com/

我希望在那里部署相同的web.config来工作。
谢谢

我知道这个问题已经问了将近4年了,所以你可能已经很久不需要答案了

^
应该可以通过以下方式工作:

<rule name="PageRedirection" enabled="true" stopProcessing="true">
    <match url="^urlfolder/filename.aspx" />
    <action type="Redirect" url="urlfolder/newfile.aspx" redirectType="Permanent" />
</rule>

^
指定路径字符串的开头,因此在
^
后面放置的内容将仅与站点根和斜杠后面显示的内容匹配

e、 g

www.example.com/urlfolder/filename.aspx

会匹配的

www.example.com/subdirectory/urlfolder/filename.aspx

不匹配

我能想到为什么它会像你说的那样匹配/subdirectory/urlfolder/filename.aspx的唯一原因是,有一个web.config的副本 在/subdirectory/中,在这种情况下,
www.example.com/subdirectory/
被视为根目录

如果是这种情况,并且您的web.config被复制到根目录以外的其他位置,另一个选项是在
%windir%\system32\inetsrv\config\ApplicationHost.config
中添加规则,而不是在web.config中添加规则。此文件包含应用于计算机上所有IIS的所有设置,而不仅仅是特定站点。根据我的经验,VisualStudio将拒绝打开此文件。但是,您可以在其他编辑器中编辑文件,或者通过IIS GUI设置重写规则

在GUI中,在文件树的顶层,此级别的可用工具包括URL重写实用程序,以及在此处设置的写入ApplicationHost.config的规则


希望这有帮助

这节省了我很多时间!非常感谢。