正则表达式 – 在我的应用程序中添加尾部斜杠时,IIS ARR规则无法
发布时间:2020-12-14 06:23:00 所属栏目:百科 来源:网络整理
导读:我有一个应用程序池,我想在ARR服务器下运行,该服务器应该作为我所有应用程序的路由器. 我已经定义了一组应该在瀑布中应用的规则,但某些方法并没有正确运行. 第一个规则应该处理尾部斜杠,其他规则应该映射我的应用程序以使用重写URL解析我的内部DNS服务器,但
我有一个应用程序池,我想在ARR服务器下运行,该服务器应该作为我所有应用程序的路由器.
我已经定义了一组应该在瀑布中应用的规则,但某些方法并没有正确运行. 第一个规则应该处理尾部斜杠,其他规则应该映射我的应用程序以使用重写URL解析我的内部DNS服务器,但问题似乎发生在第一个规则期间. 默认行为是,如果我尝试使用http://myapp启动我的应用程序将返回404代码,如果我尝试通过添加斜杠(http://www.myapp/)运行它一切正常.所以基本上我的规则应该检查没有斜杠的Url模式:如果资源是一个目录,它应该在Url的末尾添加斜杠. 所以捕获url的模式是以下正则表达式: .*[^/]$ 这应该抓住没有/最后的网址,我成功测试了它. 对于与正则表达式匹配的每个url,我应该检查它是否是一个目录,并且在这种情况下我应该设置尾部斜杠,所以: {REQUEST_FILE} -> Is a directory 但这不起作用.我还尝试添加以下规则但没有成功: {REQUEST_FILE} -> Is not a file 适用的规则如下: 重定向到(重写导致相同的行为): {R:O}/ 似乎没有添加/到我的网址,我不知道如何检查哪些步骤未能成功.接下来的规则基本上遵循这种模式: mywebapp/* redirect to www.mydnsappaddress/{R:1} 编辑:我添加了web.config示例,以显示规则的文本版本. <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <clear /> <rule name="Trailing Slash" enabled="false" stopProcessing="true"> <match url=".*[^/]$" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{REQUEST_FILENAME}" matchType="IsFile" /> </conditions> <action type="Redirect" url="{R:0}/" /> </rule> <rule name="app1" enabled="false" patternSyntax="Wildcard"> <match url="sites/doc/*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Rewrite" url="http://mypersonaldnsaddress/{R:0}" /> </rule> <rule name="ASTCO portale NWS" enabled="true" patternSyntax="Wildcard"> <match url="portale/*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Rewrite" url="http://mypersonaldnsaddress/{R:0/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
我必须要问一个显而易见的事实:你的例子是否故意设置为false?
我能够完全按照你的意愿完成这项工作:如果目录存在,最后添加斜杠,如果不存在,则不要. <rule name="Trailing Slash" enabled="true" stopProcessing="true"> <match url=".*[^/]$" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" /> </conditions> <action type="Redirect" url="{R:0}/" /> </rule> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |