2011-09-25 31 views
4

我希望用戶訪問我的Intranet測試網站 - http://mywebsite:9090如果鍵入http://mywebsite/testIIS 7.5使用反向代理將URL從默認網站重寫爲兩個網站失敗

我在下面的部分 - 7.反向代理到另一個站點/服務器在http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx創建一個url重寫。

選中位於IIS管理器中應用程序請求路由功能視圖中的「啓用代理」複選框。我有規則 -

<rule name="Proxy"> 
    <match url="(.*/test)" /> 
    <action type="Rewrite" url="http://{HTTP_HOST}:9090/{R:1}" /> 
</rule> 

但是這不起作用。它沒有將我指向http://mywebsite:9090,但未打印出http://mywebsite/test未找到。

改變了規則,看它是否是通過使用代理的問題 -

<rule name="Proxy"> 
    <match url="(.*)" /> 
    <action type="Rewrite" url="http://{HTTP_HOST}:9090/{R:1}" /> 
</rule> 

我可以看到它可以直接我http://mywebsite:9090當我瀏覽http://mywebsite

我的第一條規則會怎樣?

感謝您的幫助。

+0

絲毫不差會更豐富。 – tugberk

回答

6

你想要什麼是規則:

「^測試(/.*)?$」

你的行動可以保持不變。

根據上面的規則,你會說「如果URL(包括第一個斜槓,即」http://mywebsite.com/「)的HTTP_HOST部分之後的第一件事情等於測試,那麼你 在所有URL的其餘部分(如果有的話)上創建一個捕獲組,重寫URL爲具有HTTP_HOST,添加端口9090,然後追加第一個捕獲組中的任何內容(即R:1,無論是在正則表達式中的括號)。

確保取消追加查詢字符串作爲你捕捉你所需要的正則表達式的一部分,並不需要這一點。

信貸,就是它因,我正在努力解決這個問題d找到我需要的東西在這裏:

問題的

http://forums.iis.net/t/1180781.aspx

+0

感謝您的回覆。但它不適用於我。當我輸入http://mywebsite.com/test時,IIS Url Rewrite的測試模式中出現驗證錯誤。我可能沒有說清楚。我想要的是我不喜歡打開9090到互聯網。當用戶鍵入http://mywebsite.com/test時,IIS可以在http://mywebsite.com/test內部重寫http://mywebsite.com:9090並通過端口80顯示我的測試網站。http:// http:// mywebsite.com/是使用端口80的互聯網開放的生產站點。是否可以通過URL重寫?再次感謝! – Don

+0

請嘗試以下操作;使用空白規則,添加上面提到的規則作爲匹配(確保您選擇正則表達式),並選擇重定向到像谷歌網站這樣的已知工作網站。如果驗證失敗,不要擔心(儘管它不應該),請使用它進行測試。去你的/測試,看看你是否被重定向到谷歌。如果你這樣做,那麼你只需要制定出正確的方式來引用你的網站(即mywebsite:9090)。希望有所幫助。 – brettbaggott

+0

佈雷特,你說得對。它可以指引我到Google。我只需要弄清楚如何指向mywebsite:9090。謝謝! – Don