簡體   English   中英

IIS URL重寫問題

[英]IIS URL Rewrite Issue

我有一個域名指向我的托管帳戶的根。 在根目錄中,我有一個Web.Config(僅用於URL重寫)和2個應用程序起點,即/ josh和/ sudoktion。

我的URL重寫規則就是為此而構建的:如果用戶訪問www.sudoktion.com,則轉到/ sudoktion,同樣,如果用戶訪問josh.sudoktion.com,則轉到/ josh。 這很完美。

<rule name="Rewrite1" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.sudoktion.com$" />
</conditions>
<action type="Rewrite" url="sudoktion/{R:1}" />
</rule>


<rule name="Rewrite9" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^josh.sudoktion.com$" />
</conditions>
<action type="Rewrite" url="josh/{R:1}" />
</rule>

但是,我遇到的問題是,如果用戶轉到:sudoktion.com而沒有附加www。 從一開始,它將把用戶帶到根目錄並公開根目錄的內容。 我嘗試添加帶有pattern =“ sudoktion.com $”的新規則,並將其重寫為sudoktion /,該規則有效,但是它打破了josh.sudoktion.com路徑樣式的樣式。

如何在不破壞josh.sukoktion.com規則的情況下向sudoktion /添加sudoktion.com/的重寫規則?

將以下額外的行添加到第一條規則的條件中:

<add input="{HTTP_HOST}" pattern="^sudoktion.com$" />

並使其與這兩個騙局中的任何一個相匹配。 因此,規則的整個XML將是:

<rule name="Rewrite1" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="^sudoktion.com$" />
    <add input="{HTTP_HOST}" pattern="^www.sudoktion.com$" />
  </conditions>
  <action type="Rewrite" url="sudoktion/{R:1}" />
</rule>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM