2013-10-07 75 views
0

这里是我的web.config需要帮助搞清楚这个重写规则

我有一个像www.web1.com和www.web2.com主域(www是可选)需要重写sub1.mainsite。 com和sub2.mainsite.com,也有www.mainsite.com活跃。

我一直在尝试很多不同的配置,我还没有拿出任何可用的东西。

在跟踪中,它很奇怪,因为它显示输入为空,所以匹配是错误的。

如果有人能对此有所了解,将不胜感激。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <clear /> 
       <rule name="Alegent Rewrite" enabled="true" stopProcessing="true"> 
        <match url="^(www.)?web1\.com(.*)" ignoreCase="true" /> 
        <conditions logicalGrouping="MatchAny" trackAllCaptures="false"> 
        </conditions> 
        <action type="Rewrite" url="https://sub1.thesite.com/{R:2}" logRewrittenUrl="true" /> 
       </rule> 
       <rule name="Prairie Health" stopProcessing="true"> 
        <match url="^www\.web2\.com(.*)" ignoreCase="true" /> 
        <conditions logicalGrouping="MatchAny" trackAllCaptures="false"> 
         <add input="{HTTP_HOST}" pattern="^web2.com$" /> 
         <add input="{HTTP_HOST}" pattern="^www.web2.com$" /> 
        </conditions> 
        <action type="Rewrite" url="https://sub2.thesite.com/{R:1}" logRewrittenUrl="true" /> 
       </rule> 
       <rule name="noextension" enabled="true" patternSyntax="ECMAScript" stopProcessing="true"> 
        <match url="^(.*)$" /> 
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        </conditions> 
        <action type="Rewrite" url="{R:1}.cfm" logRewrittenUrl="true" /> 
       </rule> 
     </rewrite> 

     <defaultDocument> 
      <files> 
       <remove value="default.aspx" /> 
       <remove value="iisstart.htm" /> 
       <remove value="Default.asp" /> 
       <remove value="Default.htm" /> 
      </files> 
     </defaultDocument> 
     <tracing> 
      <traceFailedRequests> 
       <remove path="*" /> 
       <add path="*"> 
        <traceAreas> 
         <add provider="WWW Server" areas="Rewrite" verbosity="Verbose" /> 
        </traceAreas> 
        <failureDefinitions statusCodes="200-399" /> 
       </add> 
      </traceFailedRequests> 
     </tracing> 
    </system.webServer> 
</configuration> 

回答

0

我明白了。

  <rule name="SiteRewrite" enabled="true" stopProcessing="true"> 
       <match url="(.+)?" ignoreCase="true" /> 
       <conditions logicalGrouping="MatchAny" trackAllCaptures="false"> 
        <add input="{HTTP_HOST}" pattern="(www.)?web1.com" /> 
       </conditions> 
       <action type="Redirect" url="https://sub1.thesite.com/" logRewrittenUrl="true" /> 
      </rule>