Iis 加上一句「;假;使用重写的根文件夹

Iis 加上一句「;假;使用重写的根文件夹,iis,url-rewriting,rewrite,iis-modules,Iis,Url Rewriting,Rewrite,Iis Modules,我不知道该去哪里。我已经重写了删除文件扩展名之类的东西,但我似乎不知道怎么做,就是在站点上添加一个“假”根目录。例如,如果站点是www.foo.com/index.htm,我想重写URL以显示www.foo.com/root/index.htm。我可以使用IIS重写模块或mod rewrite。我只是不知道该怎么做(或者是否可能),我的google fu让我失望。如果我理解正确,您希望请求带有根前缀。在这种情况下,此重写将完成以下操作: <rule name="StripRoot" sto

我不知道该去哪里。我已经重写了删除文件扩展名之类的东西,但我似乎不知道怎么做,就是在站点上添加一个“假”根目录。例如,如果站点是www.foo.com/index.htm,我想重写URL以显示www.foo.com/root/index.htm。我可以使用IIS重写模块或mod rewrite。我只是不知道该怎么做(或者是否可能),我的google fu让我失望。

如果我理解正确,您希望请求带有
根前缀。在这种情况下,此重写将完成以下操作:

<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,如果使用相对链接,您需要更复杂的重写。

@Joe抱歉忘记添加它是IIS7I,我将其放入其中,它不会将根/目录添加到URL中。然而,当我在url中键入root/时,我并没有得到404错误,因为该目录是如何不存在的。非常感谢您的建议。很难从您的问题中找出确切的要求是什么。我的网站URL是www.foo.com/index.htm。我想将其改写为www.foo.com/root/index.htm,因为实际上移动文件不是一个选项。链接也不成问题,因为链接大多指向一个加载的文件将不同的文件放入它自己OK,所以我不知道现在有什么问题:)