IIS / web.config URL重写从url删除子文件夹

时间:2012-05-08 01:27:22

标签: .net iis url-rewriting web-config

假设我有一个名为mydomain.com的域名。我添加了一个子文件夹调用site1例如,我还注册了一个具有相同名称的子域。这意味着我想将 site1.mydomain.com 映射到 site1.mydomain.com/site1 ,但我不希望 / site1 显示

这是我第一次这样做,我刚看了下面的文章,它非常方便,但它仍然不适用于网址。锚点正在被正确重写,但网址无法正常工作。 http://weblogs.asp.net/owscott/archive/2010/05/26/url-rewrite-multiple-domains-under-one-site-part-ii.aspx

这就是我所拥有的

<configuration>
        <system.webServer>
                <rewrite>
                        <rules>
                                <rule name="in a subfolder" enabled="true" stopProcessing="true">
                                        <match url=".*" />
                                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                                                <add input="{HTTP_HOST}" pattern="^(www\.)?site1.mydomain\.com$" />
                                                <add input="{PATH_INFO}" pattern="^/site1($|/)" negate="true" />
                                        </conditions>
                                        <action type="Rewrite" url="/site1/{R:0}" />
                                </rule>
                        </rules>
                        <outboundRules>
                                <rule name="Outgoing - URL paths" enabled="true">
                                        <match filterByTags="A" pattern="^(?:site1|(.*//[_a-zA-Z0-9-\.]*)?/site1)(.*)" />
                                        <action type="Rewrite" value="{R:1}{R:2}" />
                                </rule>
                                <rule name="response_location URL">
                                        <match serverVariable="RESPONSE_LOCATION" pattern="^(?:site1.mydomain.com|(.*//[_a-zA-Z0-9-\.]*)?/site1)(.*)" />
                                        <action type="Rewrite" value="{R:1}{R:2}" />
                                </rule>
                                <rule name="response_location querystring">
                                        <match serverVariable="RESPONSE_LOCATION" pattern="(.*)%2fsite1(.*)" />
                                        <action type="Rewrite" value="{R:1}{R:2}" />
                                </rule>
                        </outboundRules>
                </rewrite>
        </system.webServer>
</configuration>

正则表达式中可能有一个明显的错误,但是我不理解这个配置的每一个部分,所以这可能是原因。如果你不能给出答案,也许你可以解释一下这有什么作用?

谢谢,

0 个答案:

没有答案