我尝试将我的域的 IP 地址重定向到域名,但遇到了麻烦。IP 地址没有重定向到下面重定向语句中列出的域名。
IP 地址是http://184.168.27.44/
我已经在 web.config 文件中设置了以下规则:
<rule name="IPHit" enabled="true" stopProcessing="false">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^184\.168\.27\.44" />
</conditions>
<action type="Redirect" url="http://littlejawsbigsmiles.com/{R:1}" redirectType="Permanent" />
</rule>
DNS 设置了以下记录:
A (HOST)
------------------------
@ --> 184.168.27.44
CNAME (Alias)
------------------------
www --> @
我还遗漏了什么吗?我不确定为什么这不起作用。
我也尝试过解决方案此处提供但重定向仍然没有发生
答案1
您的 web.config 规则是正确的。您遇到的问题是因为您在 Godaddy.com 上使用共享托管计划。将 IP 放入这里返回:
发现有 696 个域名与 184.168.27.44 托管在同一 Web 服务器上
由于您不是该 IP 上托管的唯一站点,因此当浏览器直接访问该 IP 时,服务器不知道要返回哪个站点,因此显示此错误:
您尝试访问的页面不存在于该服务器上...
为了能够通过 IP 直接指向您的网站,您需要专用托管,这会更加昂贵。
如果你没有使用共享 IP,更完整的规则将如下所示(在我自己的具有专用 IP 的服务器上测试):
<rule name="IPHit" enabled="true" stopProcessing="false">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="184.168.27.44" />
</conditions>
<action type="Redirect" url="http://littlejawsbigsmiles.com/{R:1}" redirectType="Permanent" appendQueryString="true" />
</rule>
以上内容与您的和类似Vysakh 的回答,但添加了 appendQueryString 属性。如果您的任何 URL 带有查询字符串(“?”后面的内容),则这是必需的,以便在重定向期间添加查询字符串。
答案2
尝试使用通配符匹配,当您只想匹配一个特定情况而不考虑路径时,无需使用正则表达式匹配。{R:0}
将保存对匹配的 URL 的反向引用*
(/ 之后的任何内容):
<rule name="IPHit" enabled="true" patternSyntax="Wildcard" stopProcessing="false">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="184.168.27.44" />
</conditions>
<action type="Redirect" url="http://littlejawsbigsmiles.com/{R:0}" redirectType="Permanent" />
</rule>
答案3
尝试这个:
<rule name="IP Hit" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="184.168.27.44" />
</conditions>
<action type="Redirect" url="http://littlejawsbigsmiles.com/{R:1}" redirectType="Permanent" />
</rule>
解释可见这里...