2016-10-18 52 views
0

我有兩個域www.example.com和www.example.xx。IIS URL重寫刪除文件夾並重定向到其他域

當我訪問example.com並更改語言時,我的地址更改爲example.com/xx。在這種情況下,我想重新做一個像example.xx這樣的域名後綴。但我仍然希望轉發完整的地址路徑。

例如:http://example.com/xx/one/two/three/four/five/?query=string應該重定向到http://example.xx/one/two/three/four/five/?query=string

我嘗試了好幾種方式,但沒有運氣。

<rewrite> 
 
    <rules> 
 
    <rule name=".com xx Redirect" stopProcessing="true"> 
 
     <match url="(www\.)?example\.com\/xx\/.*" /> 
 
     <conditions logicalGrouping="MatchAll"> 
 
     <add input="{REQUEST_URI}" pattern="^xx\/(.*)" /> 
 
     </conditions> 
 
     <action type="Redirect" url="http://example.xx/{C:1}" appendQueryString="true" redirectType="Temporary" /> 
 
    </rule> 
 
    </rules> 
 
</rewrite>

回答

0

匹配的網址只匹配路徑不是域。你將不得不做這樣的事情:

<rule name=".com xx Redirect" stopProcessing="true"> 
<match url="^xx/(.*)" /> 
<conditions > 
    <add input="{HTTP_HOST}" pattern="^(www\.)?example\.com$" ignoreCase="true" /> 

</conditions> 
<action type="Redirect" url="http://example.xx/{R:1}" appendQueryString="true" /> 

+0

謝謝@Jeroen!這解決了我的問題。最後,經過一整天的努力。 –

+0

經過測試後,我意識到如果您有以下鏈接示例http://example.com/one/two/xx/three/four/five/?query=string,這將不起作用。在這種情況下,您將被定向到以下地址http://example.xx/three/four/five/?query = string,不包含文件夾1和2。 –

+0

在條件下增加了以下行,問題就解決了。