我正试图将我的域名的IP地址redirect到域名,并遇到麻烦。 IP地址不会redirect到下面redirect语句中列出的域名。
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设置了以下logging:
A (HOST) ------------------------ @ --> 184.168.27.44 CNAME (Alias) ------------------------ www --> @
还有什么我想要的吗? 我不知道为什么这不工作。
我也尝试了这里提供的解决scheme,但redirect仍然不会发生
你的规则是正确的。 您遇到的问题是因为您在Godaddy.com上的共享托pipe计划。 把IP放在这里返回:
find了与184.168.27.44相同的Web服务器上的696个域名
由于您不是唯一的IP地址,当浏览器直接访问IP时,服务器不知道要返回哪个站点,因此显示以下错误:
您尝试访问的网页在此服务器上不存在…
为了能够通过IP直接指向您的站点,您需要专用的托pipe服务,而这种托pipe服务要贵得多。
如果您不在共享IP上,则更完整的规则将如下所示(在我自己的具有专用IP的服务器上进行testing):
<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属性。 如果你有任何带有查询string的URL(在“?”之后的东西),这是必要的,这样查询string在redirect期间被添加。
尝试使用通配符匹配,而不需要使用正则expression式匹配,只需要匹配一个特定的情况而不考虑path。 {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>
尝试这个:
<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>
说明可以在这里看到…