2011-07-14 92 views
0

我正在構建需要幾個子域的此asp.net應用程序。使用以下重寫規則在IIS 7.0上使用子域名重寫問題,在IIS 7.5上不存在

admin.domain.com -> domain.com/admin 
user.domain.com -> domain.com/user 
... 

一切都在我的dev的盒子的偉大工程(WIN7,IIS 7.5):他們都將共享相同的代碼庫,但我在自己的子文件夾中的每個子域獨立的.aspx,如下:

<rule name="admin.domain.com" stopProcessing="true"> 
    <match url=".*" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^admin.domain.com$" /> 
     <add input="{PATH_INFO}" pattern="^/images/" negate="true" /> 
     <add input="{PATH_INFO}" pattern="^/handlers/" negate="true" /> 
     <add input="{PATH_INFO}" pattern="^/aspnet_client/" negate="true" /> 
     <add input="{PATH_INFO}" pattern="^/webservices/" negate="true" /> 
     <add input="{URL}" pattern="\.axd$" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="\admin\{R:0}" /> 
</rule> 

當我將我的版本推到運行Win 2008 R1的產品上時,在IIS 7.0上重寫了中斷。我看到頁面源代碼中的<form>標記指向action="admin/",而在7.5上指向根。所以當我發佈我的表單時,我得到了404s,因爲每個重寫都沒有/ admin子文件夾。

有什麼我可以做的,以彌補這一點?我想省略升級到R2只是爲了解決這個問題。我可以單獨升級URL重寫模塊嗎?我可以使用不同的重寫規則修復此問題嗎?

任何幫助表示讚賞!

回答

0

我發現了一個解決方案,出於某種原因在iis 7.0上,您必須在定義好表格的情況下添加以下內容。在我的情況下,它是我的母版頁中的Page_Load。希望這可以幫助。

form1.Action = Request.RawUrl