我在使用ARR在IIS 7中设置反向代理出站URLredirect时遇到了问题。 该域名有2个入站URL重写和1个出站URL重写。 入境的工作正常,我没有看到他们的任何问题。
但是,出站redirect似乎每次启用时都会使应用程序池崩溃。 它会一直崩溃,直到我禁用出站规则。 我认为这可能是我的redirect中的某种循环,但我不确定。 我对自己的正则expression式不太熟悉,而且在网上search也找不到太多的东西。
以下是可以使用的两个入站redirect:
<rule name="Rule1" enabled="true" stopProcessing="false"> <match url="^blog/$" /> <serverVariables> <set name="HTTP_ACCEPT_ENCODING" value="0" /> <set name="HTTP_X_FORWARDED_HOST" value="domain.com" /> </serverVariables> <action type="Rewrite" url="http://blog.domain.com" appendQueryString="True" /> </rule> <rule name="Rule2" enabled="true" stopProcessing="false"> <match url="^blog/(.*)" /> <serverVariables> <set name="HTTP_ACCEPT_ENCODING" value="0" /> <set name="HTTP_X_FORWARDED_HOST" value="domain.com" /> <set name="HTTP_X_FORWARDED_FOR" value="{REMOTE_ADDR}" /> </serverVariables> <action type="Rewrite" url="http://blog.domain.com/blog/{R:1}" appendQueryString="True" /> </rule>
以下是导致应用程序池在启用时崩溃的出站规则:
<outboundRules rewriteBeforeCache="true"> <rule name="outRule1" preCondition="isHtml" enabled="false" stopProcessing="false"> <match filterByTags="A" pattern="^http(s)?://blog.domain.com/blog/(.*)" /> <action type="Rewrite" value="http{R:1}://www.domain.com/blog/{R:2}" /> <conditions logicalGrouping="MatchAll"> </conditions> </rule> <preConditions> <preCondition name="isHtml"> <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> </preCondition> </preConditions> </outboundRules>
任何帮助深表感谢。
您可能需要为出站规则将rewriteBeforeCache设置为false
保罗