假设我有一个名为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>
正则表达式中可能有一个明显的错误,但是我不理解这个配置的每一个部分,所以这可能是原因。如果你不能给出答案,也许你可以解释一下这有什么作用?
谢谢,