iis7 url重寫和重定向
新建兩個站點,埠分別使用 80 和 81,在DNS中新建A記錄,指向該計算機(10.4.34.41)
配置過程如下:
1.在Windows Server 2012 R2上 安裝ARR,URL Rewriter元件。
ARR3.0需要如下元件支援:Web Farm Framework 2.2(該元件又需要Web Platform Installer 3.0 和 WebDeploy 2.0元件的支援)
URL Rewriter2.0(For IIS7.0,支援Win 2012 R2)直接安裝即可。
下載地址:http://www.iis.net/downloads/microsoft/application-request-routing
http://www.iis.net/downloads/microsoft/web-farm-framework
http://www.microsoft.com/en-us/download/details.aspx?id=7435 依次安裝完如上元件後,可以在IIS控制檯中看到 ARR 和 URL重寫 安裝成功 2.啟用ARR:開啟ARR,然後在右側對其啟用(使用預設設定即可) 3.配置 URL重寫,對URL進行過濾,將不同的訪問請求(根據URL(DNS中的配置)進行過濾)定向到相應的站點 該設定表明只有HTTP_HOST為la80.ddv.com的URL才能通過該規則,如果綁定了多個域名,可以根據多次增加或者通過正則表示式的 | 來間隔配置完成後如下圖:
在外部訪問 la80.ddv.com 和la81.ddv.com可以訪問成功。
通過配置web.config檔案,也可以實現 URL重寫,如下:
<rewrite>
<rules>
<rule name="phpweb">
<match url="^(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^phpweb.leven.com.cn$" />
</conditions>
<action type="Rewrite" url="http://localhost:8081/{R:1}" />
</rule>
</rules>
</rewrite>
參考來源:http://blog.sina.com.cn/s/blog_532f78a40100rlpn.html
ARR安裝完成後,如果在IIS裡面看不到ARR圖示,解決方法如下:
1.分別通過如下命令開啟 IIS管理器,檢視有無ARR圖示:
%windir%\System32\inetsrv\iis.msc
%windir%\system32\inetsrv\InetMgr.exe
2.通過PS指令碼檢查ARR是否安裝成功:
$dll=[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
#Get the manager and config object
$mgr = new-object Microsoft.Web.Administration.ServerManager
$conf = $mgr.GetApplicationHostConfiguration()
#Get the webFarms section
$section = $conf.GetSection("webFarms")
$section