2010-06-30 43 views
9

Sử dụng IIS7, làm cách nào để trực tiếp địa chỉ IP của private network IP vào trang web của tôi trong khi tôi hướng các địa chỉ IP bên ngoài đến trang "đang được bảo trì"?Các IP khác nhau trực tiếp đến các trang khác nhau trên IIS7

Cho đến nay trên IIS7 tôi đã tìm thấy phần trong IIS có tên "Địa chỉ IPv4 và Hạn chế miền" và tôi có thể thêm 3 phạm vi nội bộ vào đó làm dải cho phép. Điều đó có vẻ dễ dàng. Bây giờ làm cách nào để chuyển hướng tất cả lưu lượng truy cập khác đến một trang tĩnh như app_offline.html mà tôi đã tạo. (Tôi sẽ không sử dụng app_offline.html vì điều đó rõ ràng sẽ khiến ứng dụng ngoại tuyến cho địa chỉ nội bộ.)

+1

Phù hợp hơn cho http://www.serverfault.com IMO – MikeD

+3

Đây là những nhà phát triển triển khai ứng dụng web và định cấu hình IIS7 vì vậy khi xem xét SO hoặc SF, tôi nghĩ đây sẽ là nơi tốt hơn. – Guy

Trả lời

17

Bạn có thể sử dụng URL Rewrite (http://www.iis.net/download/URLRewrite) cho điều đó. Sau đó, bạn có thể thả một web.config với những nội dung như:

<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> 

gì nó về cơ bản không có gì để chỉ áp dụng quy tắc này nếu nội dung chưa được trang "site-under-xây dựng" (để ngăn chặn vô hạn chuyển hướng) và chỉ áp dụng điều này nếu địa chỉ IP không đến từ 192.168.XXX.XXX (và không phải là máy chủ cục bộ).

Nếu không, nó sẽ cho phép họ truy cập vào bất kỳ trang nào họ yêu cầu.

Lưu ý rằng điều này không nên được sử dụng như một cơ chế bảo mật vì Remote Addr có thể bị giả mạo, nhưng có vẻ như đối với kịch bản của bạn, nó sẽ ổn.

Các vấn đề liên quan