Iis 7 基于根URL的IIS URL重写
我正在尝试重写url: www.mydomain.com/urlfolder/filename.aspx 指 www.mydomain.com/urlfolder/newfile.aspx 我的web配置包含以下内容: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
<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的规则
希望这有帮助这节省了我很多时间!非常感谢。