我们的一个网站有多个域。
例如 mydomain-uk.com 和 mydomain.co.uk
我有一个处理程序,它创建一个 XML 站点地图并HttpContext.Current.Request.Url.Host
用于检索主机站点。
当我的浏览器在 mydomain.co.uk/handler 上时,它会检索 mydomain-uk.com 作为主机
如何确保它始终检索 mydomain.co.uk ?
是否在服务器上的某处配置了偏好顺序?
主机是从请求上的 URL 获取的,这是合乎逻辑的,你不能改变它。
要解决此问题,请使用您的 URL 名称创建一个静态变量,最好将其放在您的 web.config 中,并且只获取此变量而不是 Url.Host
希望这有帮助
不要忘记 HttpContext.Current.Request.Url.Host 只会返回发生时请求的任何 HOST。如果客户端请求其他内容,HttpContext.Current.Request 将反映这一点。
不要将您的所有域都指向该网站。让额外的域执行 301 重定向到主域名。这也将有助于解决搜索引擎在尝试解析您的网站时对哪个网站是您的内容的原始来源的混淆,并将防止来自其他网站的入站链接使用混合域,这只会加剧问题。