我在Facebook Oauth登录时遇到问题。
在我的网站上尝试使用Facebook(OpenAuth)登录时,我遇到了此错误。
条件1:如果我尝试使用网址www.medimart.com.np/sf/sfLogin.aspx登录。登录成功,一切正常。
条件2:但是如果我尝试使用网址medimart.com.np/sf/sfLogin.aspx登录。 登录失败,我收到错误消息:
"消息":"无法加载网址:此网址的域名未包含在应用网域中。要加载此网址,请将应用的所有域和子域添加到应用设置中的应用域名字段。"
我该如何解决这个问题?
答案 0 :(得分:1)
Facebook总是会检查 WWW 域名。因此,请确保 www.medimart.com.np 正在您的浏览器上运行。
您必须在此处修改主机文件:
C:\Windows\System32\drivers\etc
并添加以下行:
127.0.0.1 medimart.com.np
127.0.0.1 www.medimart.com.np
请参见如何Modify your hosts file。
来自 Ermir 评论的link分享。
www子域的主题有两个阵营。一个人认为它应该被强制执行(www.yes-www.org)而另一个(no-www.org)应该被删除。他们都是对的。
重要的是,您的网站只有一个规范地址 - 有或没有www。
您的服务器需要安装URL Rewrite module。它可能已经存在。 Azure网站以及我所有其他托管服务提供商都这样做。
对于域名没有WWW 使用以下规则:
<rule name="Remove WWW" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{CACHE_URL}" pattern="*://www.*" />
</conditions>
<action type="Redirect" url="{C:1}://{C:2}" redirectType="Permanent" />
</rule>
对于域名使用WWW :
使用以下规则<rule name="Enforce WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{CACHE_URL}" pattern="^(.+)://(?!www)(.*)" />
</conditions>
<action type="Redirect" url="{C:1}://www.{C:2}" redirectType="Permanent" />
</rule>
现在您可以在web.config文件中添加以上规则:
<system.webServer>
<rewrite>
<rules>
<!-- Add your rules here -->
</rules>
</rewrite>
</system.webServer>
答案 1 :(得分:1)
正如@ AsifAli72090建议的那样,这是我所学到的。
“Facebook总是会检查WWW域名。”
因此,在尝试使用您的Facebook帐户登录时,您的域中必须有“www”。将“yourdomain.com”重定向到“www.yourdomain.com”。所以我最终在web.config文件中添加了这段代码
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect domain.com to www" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^yourdomain.com$" />
</conditions>
<action type="Redirect" url="http://www.yourdomain.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>