我不知道该去哪里。我已经重写以删除文件扩展名等,但我似乎无法找到如何将“假”根目录添加到站点。例如,如果站点是 www.foo.com/index.htm,我想重写 URL 以显示 www.foo.com/root/index.htm。我可以使用 IIS 重写模块或 mod 重写我只是不确定如何去做(或者是否可能),我的 google-fu 让我失望了。
问问题
276 次
1 回答
1
如果我理解正确,您希望请求带有root
前缀。在这种情况下,此重写将执行此操作:
<rule name="StripRoot" stopProcessing="true">
<match url="root/(.*)" />
<action type="Rewrite" url="/{R:1}" />
</rule>
要修改提供给客户端出站规则的 html,需要:
<outboundRules>
<rule name="FakeRoot" preCondition="IsHtml">
<match filterByTags="A, Area, Base, Form, Frame, IFrame, Img, Input, Link, Script" pattern="http://www\.foo\.com/(.*)" />
<action type="Rewrite" value="http://www.foo.com/root/{R:1}" />
</rule>
<preConditions>
<preCondition name="IsHtml">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
它假定您在标记属性中具有完全限定的 URL,如果使用相对链接,则需要更复杂的重写。
于 2012-12-19T21:47:49.847 回答