2017-06-06 146 views
0

我無法在IIS 7.5:IIS 7.5重寫與此URL重寫規則模塊循環

<rewrite> 
    <rewriteMaps configSource="rewriteMap.Custom.config" /> 
    <rules> 
     <rule name="Redirects" patternSyntax="ECMAScript" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions>       
       <add input="{Custom:{REQUEST_URI}}" pattern="(.*)" /> 
      </conditions> 
      <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" /> 
     </rule> 
    </rules> 
</rewrite> 
<httpRedirect enabled="true" destination="https://www.newsite.com" exactDestination="true" /> 

rewriteMap.Custom.config:

<rewriteMaps> 
    <rewriteMap name="Custom"> 
     <add key="/home" value="https://www.newsite.com/index" /> 
     <add key="/contact" value="https://www.newsite.com/contactus" /> 
     <add key="/main" value="https://www.newsite.com/mainpage" /> 
    <rewriteMaps> 
<rewriteMap> 

所有的重寫映射重定向工作,例如:

www.oldsite.com/home重定向正確地www.newsite.com/index

唯一的例外是,當我輸入www.oldsite.com時,它不會將 重定向到www.newsite.com,而是通過www.oldsite.com繼續循環請求,並且Chrome提供了「太多重定向」錯誤。

我嘗試修改規則,但我只是把它打破了它根本不工作的地步。

+1

燦您請將您的問題添加到完整的'「中,因爲您使用它 –

+0

只需將您的所有rewriteMap.Custom.config添加到答案 –

+0

rewriteMap.Custom.config:是一個示例重寫映射,我不能在這裏發佈真正的映射,但它基本上看起來像我製作的自定義映射。 –

回答

0

你改寫地圖的配置應該是這樣的:

<rewriteMaps> 
    <rewriteMap name="Custom"> 
     <add key="/" value="https://www.newsite.com/" /> 
     <add key="/home" value="https://www.newsite.com/index" /> 
     <add key="/contact" value="https://www.newsite.com/contactus" /> 
     <add key="/main" value="https://www.newsite.com/mainpage" /> 
    </rewriteMap> 
</rewriteMaps> 

而且在web.config中的rules部分應該是這樣的:

<rules> 
    <rule name="Redirects" patternSyntax="ECMAScript" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions>       
      <add input="{Custom:{REQUEST_URI}}" pattern="(.+)" /> 
     </conditions> 
     <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" /> 
    </rule> 
</rules> 

問題是在錯誤的pattern

+0

謝謝,我剛剛意識到還需要添加根目錄。它工作正常。 –