代码之家  ›  专栏  ›  技术社区  ›  Grahame A

确保文件夹名不显示在域名中

  •  0
  • Grahame A  · 技术社区  · 16 年前

    我们的托管帐户是通过域名www.nashman.ca设置的,我们的应用程序是www.nashman.ca/hub。我们有另一个域转发到www.nashman.ca/hub,那就是hub.mhn.co。我遇到的问题是,每当您从hub.mhn.co导航到另一个页面时,转发的域都会添加到/hub上,因此当您在管理区域时,该域显示为hub.mhn.co/hub/admin,以供检查。普尔。我需要域保持一致,并且从不显示文件夹名,因为它破坏了我使用的一些javascript。最好的设置方法是什么?

    编辑

    我一直在读一些关于URL重写的文章,并研究它——我的主机提供商支持iis7 URL重写模块。到目前为止,我发现的所有教程都详细介绍了如何使用IIS配置工具设置规则,但我没有访问它们的权限。有没有一种方法可以通过在我的应用程序根目录中编辑我的web.config来做到这一点?这能解决我的问题吗?

    1 回复  |  直到 16 年前
        1
  •  0
  •   KeithS    16 年前

    hub.mhn.co的默认页面是否使用重定向到www.nashman.ca?如果是这样,那么发生的事情是转发软件基本上返回浏览器请求的新URI,新的URI将替换浏览器窗口中的旧URI,从而在将来的所有请求中。您可能正在重定向到~/hub/(站点根目录的hub子目录),这将导致浏览器请求保留域名但附加在子目录上的新URI。

    如果您对DNS和Web服务器有直接控制权,则可以使用DNS配置将hub.mhn.co域的请求直接指向Web服务器的/hub子目录。这样,浏览器就永远不会知道hub.mhn.co实际上是www.nashman.ca/hub/。根据您的DNS软件(IIRC,大多数可以处理IP地址/子目录路由,但有些只能处理到IP地址:端口的路由),您可能需要直接到Web服务器上的备用端口并将该端口映射到子目录。

    如果您的IT部门对您的DNS路由或确切的托管环境没有直接的控制/所有权,那么您或多或少要受托管提供商的支配。他们可能能够设置自己的环境来做同样的事情,或者不做;你所能做的就是询问。

    编辑:基本上,如果你远程托管并且不能使用他们的DNS静默地重新路由,你还有两个选择。

    第一个选项:在宿主环境中的不同根空间下,将nashman.ca/hub的Web层克隆(复制所有文件)为hub.mhn.co(尝试在nashman上保留服务层代码的任何挂钩,这样就不必复制整个垂直切片)。如果您还必须将UI保留在/hub/子目录下,那么您将重复代码,但您可以使用部署脚本来缓解这一问题,该脚本允许您将代码库的一个本地副本部署到不同的位置。这也可能会花费更多,因为您的托管环境现在托管两个非平凡的站点。

    第二个选项:托管站点和/或通过自己的硬件解决呼叫。只要您通过ISP拥有一个公共的静态IP地址,您就可以提供一个DNS服务器,它将成为nashman.ca和hub.mhn.co域的“权威”服务器。您的ISP或第三方域名注册中心可以提供一个“传递”路由,从TLD服务器向您传递请求。然后,您可以将请求路由到您喜欢的任何IP地址、端口和/或子文件夹;这可以是远程Web托管提供商(只要他们不介意只托管您的站点)或您自己的Web服务器。这需要您的ISP提供硬件和静态IP。如果您失去此服务器的电源,您的站点将无法访问,直到恢复电源。如果DNS服务器的IP地址发生更改,则在将请求路由到您的服务器使用新的IP更新其路由表(最长24小时)之前,DNS将无法访问您的站点。

    推荐文章