我在编写IIS 8.5的URL重写规则时遇到问题。我编写规则的专业知识几乎不具有中间性,文档也没有用处。
我正在尝试重定向以下网址:
hostname.com/sub1/sub2/sub3/sub4
到此网址:
hostname.com/sub1/sub6/sub7/sub2/sub4
就此而言,我的意思是 -
我知道我错误地使用了术语变量 - 我的意思是变量是URL的那些部分发生了变化,需要被捕获并用作后向引用。
让我用一个例子来澄清:
https://hostname.com/application/catalog/v3g5h6j8k9/feline-footwear
到 - >
https://hostname.com/application/showcase/default/catalog/feline-footwear
我编写规则的所有尝试都失败了。我确定我做错了什么。
我以为我接近这一点。模式测试全部成功,但它不会接收传入的URL。我刚拿到404:
<rule name=“Catalog redir” enabled=“true” stopProcessing="true">
<match url=“^(.*)/application/catalog/(.*)/(.*)” />
<action type="Redirect" url=“{R:1}/application/showcase/default/catalog/{R:3}” redirectType="SeeOther" />
</rule>
我也尝试过使用([a-zA-Z0-9 _ + - ] +)代替(。*)
此外,我将此规则安装在树的/应用程序级别,而不是根目录。这可能不正确吗?或者更好地提出,网站树中规则的位置如何与模式相关联?我也无法在文档中找到它。
提前感谢任何建议。
答案 0 :(得分:0)
关于格式,树中规则的放置是个问题。由于它没有放在根目录中,而是放在/ application中,一旦我摆脱了第一部分,所以匹配url的开头是应用程序,它开始工作。