IIS7 - 设置域名以显示除我的 IP 之外的所有 IP 的维护页面

IIS7 - 设置域名以显示除我的 IP 之外的所有 IP 的维护页面

我有一个网站www.somedomain.com。现在,我想设置 IIS 来显示一些简单的单 html 页面,向所有访问它的用户显示“网站正在维护”或类似的内容,但同时,我希望在进入网站时拥有对网站的完全访问权限。所以基本上我想禁止除我的 IP 之外的所有 IP 使用该网站。我该怎么做?

答案1

基本 IIS 设置将允许您根据 IP 阻止/允许。如果您想根据 IP 重定向用户,您应该查看 URL 重写 (http://www.iis.net/downloads/microsoft/url-rewrite)。具体来说,就是根据 REMOTE_ADDR 条件起作用的入站规则。

答案2

验证您是否安装了‘IP 和域限制模块’,如果没有,请安装它:

start /w pkgmgr.exe /iu:IIS-IPSecurity;

仅允许您自己的IP地址访问该网站:

appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /allowUnlisted:"False"  /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='192.168.1.9',allowed='True']" /commit:apphost

现在其他所有人都会看到标准的 IIS“403 - 禁止:访问被拒绝”页面。

您想用自己的页面替换此页面。构建一个不依赖任何其他资源的 HTML 页面,在页面上包含 CSS 以及所有图像:

background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJ...

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEU...

您需要将图像编码为 base64,但即使没有图像您也可以创建一个足够漂亮的页面。

您也可以引用另一台服务器上的图像,但我希望保持我的错误页面独立。

将文件保存到您的网站根目录,例如:C:\inetpub\wwwroot\403.html

最后设置 IIS 以使用您的新页面:

C:\Windows\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/httpErrors 

C:\Windows\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/httpErrors /[statusCode='403',subStatusCode='-1'].prefixLanguageFilePath:"" /[statusCode='403',subStatusCode='-1'].path:"403.html"

您的页面现在将显示所有 403 状态代码,而不仅仅是 IP 限制,但这不应该是一个大问题。

相关内容