IIS重写:为什么IIS显示重写URL?

IIS重写:为什么IIS显示重写URL?,iis,iis-7,url-rewriting,iis-7.5,Iis,Iis 7,Url Rewriting,Iis 7.5,我使用IIS重写模块。我有一些静态文件,它们存储在 网站/静态/xyz/abc 我添加了IIS重写规则,如下所示: regular expression pattern: xyz/.+ rewrite URL: /static/{R:0} 首先,如果我键入(结尾/) 一切似乎都很好。浏览器地址栏显示的正是我键入的内容 第二,如果我键入(不带结尾/) 网站仍然正确显示内容,但浏览器地址栏更改为(通过添加static和end/) 如何使IIS在第二种情况下不显示/静态 谢谢和问候 更新 使用

我使用IIS重写模块。我有一些静态文件,它们存储在

网站/静态/xyz/abc

我添加了IIS重写规则,如下所示:

regular expression pattern:

xyz/.+

rewrite URL:

/static/{R:0}
首先,如果我键入(结尾/)

一切似乎都很好。浏览器地址栏显示的正是我键入的内容

第二,如果我键入(不带结尾/)

网站仍然正确显示内容,但浏览器地址栏更改为(通过添加static和end/)

如何使IIS在第二种情况下不显示/静态

谢谢和问候

更新

使用正则表达式

            <rule name="inauguralball">
                <match url="inauguralball(/.*)?" />
                <action type="Rewrite" url="/static/{R:0}" />
            </rule>

我想我在这里找到了你的答案:。当您省略尾随斜杠,IIS找到与您的请求匹配的目录时,它将为您执行重定向。我相信这就是重定向的来源,从而将您发送到/static/initialball/。请注意,IIS还为您添加了尾随斜杠,因为它检测到目录存在


你能确保你的HREF总是指向/initialball/(带尾随斜杠),这样IIS就不会为你执行自动重定向吗?

我想我在这里找到了你的答案:。当您省略尾随斜杠,IIS找到与您的请求匹配的目录时,它将为您执行重定向。我相信这就是重定向的来源,从而将您发送到/static/initialball/。请注意,IIS还为您添加了尾随斜杠,因为它检测到目录存在


你能确保你的HREF总是指向/initialball/(带尾随斜杠),这样IIS就不会为你执行自动重定向吗?

我想我在这里找到了你的答案:。当您省略尾随斜杠,IIS找到与您的请求匹配的目录时,它将为您执行重定向。我相信这就是重定向的来源,从而将您发送到/static/initialball/。请注意,IIS还为您添加了尾随斜杠,因为它检测到目录存在


你能确保你的HREF总是指向/initialball/(带尾随斜杠),这样IIS就不会为你执行自动重定向吗?

我想我在这里找到了你的答案:。当您省略尾随斜杠,IIS找到与您的请求匹配的目录时,它将为您执行重定向。我相信这就是重定向的来源,从而将您发送到/static/initialball/。请注意,IIS还为您添加了尾随斜杠,因为它检测到目录存在



你能确保你的HREF总是指向/InstauralBall/(带尾随斜杠),这样IIS就不会为你执行自动重定向吗?

你能发布从你的web.config复制的实际规则吗?Brandon,我按照你的要求发布了它。谢谢你帮助我!浏览器不应更改地址栏中显示的URL。这只会发生在重定向规则中,而不是重写规则。您确定您没有任何其他可能存在冲突的重定向规则吗?感谢您提到这个方向。我删除了此规则前后的所有重写规则。只有这一条规则,我仍然会显示在浏览器栏中。尝试了几种不同的浏览器。同样的结果。我还重新启动了网站和应用程序池。没有变化。这真的很奇怪。对不起,我不知道该怎么办。我把这个规则放在我自己的web.config中,它可以正常工作,而不用在url中添加“static”一词。我仍然相信你的URL被重定向而不是被重写肯定还有其他原因,比如代码中的某些内容,或者子文件夹中的多个web.config或其他内容。你能发布从你的web.config复制的实际规则吗?Brandon,我按照你的要求发布了它。谢谢你帮助我!浏览器不应更改地址栏中显示的URL。这只会发生在重定向规则中,而不是重写规则。您确定您没有任何其他可能存在冲突的重定向规则吗?感谢您提到这个方向。我删除了此规则前后的所有重写规则。只有这一条规则,我仍然会显示在浏览器栏中。尝试了几种不同的浏览器。同样的结果。我还重新启动了网站和应用程序池。没有变化。这真的很奇怪。对不起,我不知道该怎么办。我把这个规则放在我自己的web.config中,它可以正常工作,而不用在url中添加“static”一词。我仍然相信你的URL被重定向而不是被重写肯定还有其他原因,比如代码中的某些内容,或者子文件夹中的多个web.config或其他内容。你能发布从你的web.config复制的实际规则吗?Brandon,我按照你的要求发布了它。谢谢你帮助我!浏览器不应更改地址栏中显示的URL。这只会发生在重定向规则中,而不是重写规则。您确定您没有任何其他可能存在冲突的重定向规则吗?感谢您提到这个方向。我删除了此规则前后的所有重写规则。只有这一条规则,我仍然会显示在浏览器栏中。尝试了几种不同的浏览器。同样的结果。我还重新启动了网站和应用程序池。没有变化。这真的很奇怪。对不起,我不知道该怎么办。我把这个规则放在我自己的web.config中,它可以正常工作,而不用在url中添加“static”一词。我仍然相信你的URL被重定向而不是被重写肯定还有其他原因,比如代码中的某些内容,或者子文件夹中的多个web.config或其他内容。你能发布从你的web.config复制的实际规则吗?Brandon,我按照你的要求发布了它。谢谢你帮助我!浏览器不应更改显示的URL
http://mysite/xyz/abc
http://mysite/static/xyz/abc/
            <rule name="inauguralball">
                <match url="inauguralball(/.*)?" />
                <action type="Rewrite" url="/static/{R:0}" />
            </rule>