I installed two IP Cameras in my house and needed to be able to access them from work but my job restricts all outbound ports except 80 and 443. Based on the article
http://blogs.iis.net/carlosag/archive/2010/04/01/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr.aspx I decided to setup IIS with Application Request Routing (ARR) and URL Rewrite. It works and I can see my camera's just fine but
adding the rewrite rules to the Web.config used by WHS causes problems with the WHS remote site. I would appreciate any help you folks can give. Basically I created two applications (CameraUpStairs and CameraDownStairs) under the Default Web
Site. Then I modified the Web.config at C:\Program Files\Windows Server\Bin\WebApps\Site by adding the rules you see below
<system.webServer>
<rewrite>
<rules>
<rule name="Route the requests for CameraUpStairs" stopProcessing="true">
<match url="^CameraUpStairs/(.*)" />
<action type="Rewrite" url="http://192.168.0.8:6474/{R:1}" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
<rule name="Route the requests for CameraDownStairs" stopProcessing="true">
<match url="^CameraDownStairs/(.*)" />
<action type="Rewrite" url="http://192.168.0.9:6475/{R:1}" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.0.8:6474/(.*)" />
<action type="Rewrite" value="/CameraUpStairs/{R:2}" />
</rule>
<rule name="ReverseProxyOutboundRule2" preCondition="ResponseIsHtml1">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.0.9:6475/(.*)" />
<action type="Rewrite" value="/CameraDownStairs/{R:2}" />
</rule>
<rule name="RewriteRelativePaths2" preCondition="ResponseIsHtml1">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/(.*)" negate="false" />
<action type="Rewrite" value="/CameraDownStairs/{R:1}" />
</rule>
<rule name="RewriteRelativePaths" preCondition="ResponseIsHtml1">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/(.*)" negate="false" />
<action type="Rewrite" value="/CameraUpStairs/{R:1}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
Thanks