我们的托管帐户设置了域名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?这会解决我的问题吗?
答案 0 :(得分:0)
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/。您可能必须指向Web服务器上的备用端口并将该端口映射到子目录,具体取决于您的DNS软件(IIRC,大多数可以处理ipaddress / subdir路由,但有些只能处理到ipaddress:port的路由)。 / p>
如果您的IT部门对您的DNS路由或您的确切托管环境没有直接控制/所有权,那么您或多或少受托管服务提供商的支配。他们可能能够建立自己的环境来做同样的事情,或者不做;所有你能做的就是问。
编辑:如果您远程托管并且无法使用其DNS进行静默重新路由,则基本上您还有两个选项。
第一个选项:在托管环境中的不同根空间下克隆(从中复制所有文件)nashman.ca/hub的web层作为hub.mhn.co(尝试保留服务层代码的任何挂钩) nashman所以你不必复制整个垂直切片)。如果您还必须将UI保留在/ hub /子目录下,那么您将重复代码,但是您可以使用部署脚本来缓解此问题,该脚本允许您将代码库的一个本地副本部署到不同位置。这可能还会花费更多,因为您的托管环境现在托管了两个非平凡的网站。
第二个选项:托管网站和/或在您自己的硬件上解析呼叫。只要您通过ISP拥有公共静态IP地址,就可以提供DNS服务器,该服务器将成为nashman.ca和hub.mhn.co域的“权威”服务器。您的ISP或第三方域名注册机构可以提供“传递”路由,以便从TLD服务器获取请求。然后,您可以将请求路由到您喜欢的任何IP地址,端口和/或子文件夹;可以是远程虚拟主机提供商(只要他们不介意JUST托管您的网站)或您自己的网络服务器。这将需要硬件和ISP的静态IP。如果您断电此服务器,您的站点将无法访问,直到电源恢复。如果DNS服务器的IP地址发生更改,则DNS将无法访问您的站点,直到将请求路由到您的服务器使用新IP更新其路由表(最长可达24小时)。