2010-06-30 10 views
9

不同的頁面使用IIS7,我怎麼指揮內部private network IP的地址到我的網站,而我直接的外部IP地址爲「網站正在維護」頁?直接不同的IP的對IIS7

到目前爲止IIS7上,我發現一個名爲「IPv4地址和域限制」在IIS中的部分,我可以作爲一個允許範圍內添加了3米內部範圍到。這似乎很容易。現在,我該如何將所有其他流量導向靜態頁面,例如我創建的app_offline.html。 (我實際上不會使用app_offline.html,因爲這顯然會使應用程序脫機以適用於內部地址。)

+1

爲http://www.serverfault.com更適合IMO – MikeD 2010-06-30 22:05:15

+3

這些都是開發者部署Web應用程序和配置IIS7這樣考慮,所以當或SF我認爲這將是更好的地方。 – Guy 2010-06-30 22:11:30

回答

17

您可以使用URL重寫(http://www.iis.net/download/URLRewrite)。 然後你可以將一個web.config中包含的內容:

<configuration> 
    ... 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="External IP" stopProcessing="true"> 
      <match url="site-under-construction\.htm" negate="true" /> 
      <conditions> 
      <add input="{REMOTE_ADDR}" pattern="192\.168\.\d+\.\d+" ignoreCase="false" negate="true" /> 
      <add input="{REMOTE_ADDR}" pattern="::1" ignoreCase="false" negate="true" /> 
      <add input="{REMOTE_ADDR}" pattern="127\.0\.0\.1" ignoreCase="false" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="/site-under-construction.htm" redirectType="Found" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
    ... 
</configuration> 

它通常做的是,如果內容是不是已經對「網站正在建設中」頁面只適用此規則(以防止無限重定向),並且僅在IP地址不是來自192.168.XXX.XXX(並且不是本地主機)時才應用。

否則就會讓通過他們來,他們要求的任何網頁。

請注意,這不應該是作爲一種安全機制,因爲遠程地址可能被欺騙,但聽起來像您的情況應該是罰款。