簡體   English   中英

URL使用IIS將子目錄重寫到其他域

[英]URL Rewrite of a subdirectory to a different domain using IIS

目標#1:www.web1.com/web2需要指向www.web2.com

目標#2:用戶必須始終在web2中查看www.web1.com/web2以及路徑和查詢

例如:www.web1.com/web2/login或www.web1.com/web2/?query=string

www.web1.com在IIS6上(使用ISAPI Rewrite)www.web2.com在IIS8上(使用URL Rewrite和ARR)

有人可以指導我如何解決這個問題嗎?

=======================

在web1上,我使用了以下內容:

RewriteCond%{HTTP_HOST} ^ www.web1.com $

RewriteRule ^ / web2 /?$ www.web2.com [NC,P,R = 301,L]

在web2上,我設置了ARR服務器場並創建了入站規則。

但是,當我拉出www.web1.com/web2時,瀏覽器上的URL仍然是www.web2.com。 我玩過REVERSE PROXY和OUTBOUND。 我看過Scott Forsyth的大部分視頻並閱讀他的文章。 我覺得我正在跳過一些東西。

在IIS7和IIS8上使用URL REWRITE進行計算。 (我今天將在IIS6上的ISAPI REWRITE上應用此功能,並將更新我的帖子。)


在WEB1服務器上 (在IIS7上):

在站點級別,添加INBOUND RULE。 (對於新手,運行IIS並單擊我的WEB1版本。雙擊右側圖標列表中的URL REWRITE。單擊右側列表中的ADD RULE。)

  1. 在INBOUND RULES下,選擇BLANK RULE
  2. 給它一個名字,你想要的任何名字(即“Subdirectory Rewrite”)
  3. 在PATTERN下,鍵入^ web2 $ | ^ web2 /(.*)
  4. 在“條件”下,單擊“添加”
  5. 條件輸入: {HTTP_HOST}
  6. 模式: ^ web1.com $
  7. 在“操作”下,選擇“操作類型: 重寫”
  8. 重寫網址: http//www.web2.com/ {R:1}
  9. 單擊“應用”

在WEB1服務器上 (在IIS6上):

使用Helicon ISAPI_Rewrite 3 付費版本

  1. RewriteCond主持人:(。*)
  2. RewriteRule ^ / web2(/.*)?$ http://www.web1.com/web2 $ 1 [P]

在WEB2 服務器上 (在IIS8上):

在站點級別,添加OUTBOUND RULE。

  1. 在OUTBOUND RULES下,選擇BLANK RULE
  2. 給它一個名字,你想要的任何名字(即“重寫路徑”)
  3. 在PRECONDITION下,選擇Create New Precondition
  4. 名稱: isHTHML
  5. 單擊“添加”
  6. 條件輸入: {RESPONSE_CONTENT_TYPE}
  7. 模式: ^ text / html
  8. 在MATCH下,選中“匹配內容”下的所有復選框
  9. 模式: ^ /(。*)
  10. 在ACTION下,操作類型: 重寫
  11. 價值: / web2 / {R:1}
  12. 單擊“應用”

    PS:感謝Scott Forsyth的靈感。

我說“P”和“R = 301”有點爭議。 這就像“我是約翰和瑪麗”。 使用[P]制作一個簡單的代理規則。

暫無
暫無

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

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