我有一個包含多個.NET網站的網絡服務器。我設置它的方式是,服務器的根目錄包含每個包含其內容的站點的文件夾。然後,我在根目錄中有一個web.config來處理這些URL,並根據他們將要訪問的網站將用戶指向適當的文件夾。URL重寫問題
根目錄:
- \站點A
- \ SiteB中
- \ web.config中
這裏是web.config文件看起來像這樣:
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="SiteA" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^(www\.)?.siteAdomain\.com$" />
</conditions>
<action type="Rewrite" url="\SiteA\{R:0}" />
</rule>
<rule name="SiteB" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^(www\.)?.siteBdomain\.com$" />
</conditions>
<action type="Rewrite" url="\SiteB\{R:0}" />
</rule>
</rules>
</rewrite>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
</configuration>
SiteA也使用ASP.NET成員身份:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="~/account/login.aspx" />
</authentication>
問題是,當我去SiteA時,身份驗證啓動並且我被重定向到loginUrl。然而,它正在解決相對於根文件夾而不是SiteA文件夾的路徑,該文件夾導致了404。this site在看過之後提到這是一個用.NET 3.5 SP1修補的錯誤。但是,我的託管服務位於運行IIS 8.0的.NET 4.X上,所以我認爲我應該清楚這一點。
我在這裏錯過了簡單的東西嗎?
你試過了嗎:LoginURL =「〜/ SiteA/account/login.aspx」或者在SiteA文件夾中放置一個新的Web.Config和Authentication信息。 ? –