假设我有一个名为 mydomain.com 的域。例如,我添加了一个名为 site1 的子文件夹,并且我还注册了一个同名的子域。这意味着我想将site1.mydomain.com映射到site1.mydomain.com/site1但我不想/site1出现。
这是我第一次这样做,我刚刚阅读了以下文章,它非常方便,但它仍然不适用于 url。锚点被正确重写,但 url 不起作用。 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>
正则表达式或其他内容可能存在明显错误,但我不了解此配置的每个部分,所以这可能就是原因。如果您不能给出答案,也许您可以向我解释更多这是做什么的?
谢谢,