我的主机文件中有以下行:
10.10.1.10 sub.domain.com
但10.10.1.10
指的是服务器的根目录,当我仍然必须转到文件夹时,这会导致问题10.10.1.10/myfolder
问题出现的原因是网上网站没有这些文件夹,所以当我尝试检查文件是否存在时出现错误。
当我将 hosts 文件中的行更改为
10.10.1.10/myfolder sub.domian.com
我得到的是空白页,与实际输入时不一样
10.10.1.10/myfolder
进入我的浏览器 URL
我的问题是,有没有办法在 hosts 文件中正确使用斜杠,或者还有其他方法?
答案1
hosts 文件用于将 IP 地址映射到主机名,反之亦然。可以将其视为穷人的 DNS。因此,hosts 文件不处理路径名,因此斜线不起作用。看起来您希望 sub.domain.com 重定向到10.10.1.10/myfolder
。这将需要远程服务器为您执行重定向。
答案2
我的问题是,有没有办法在 hosts 文件中正确使用斜杠,或者还有其他方法?
不可以,您不能在 hosts 文件中添加斜线(又称目录、路径等)。网络主机名是 IP 地址的别名。不是服务器上的路径。管理文件路径不是任何类型的网络工具的工作。
您所面临的问题正是编辑针对网络/应用程序开发的敌意的确切原因,这确实是一种糟糕的处理方式。
最好将您的网站编码为可以从其他端口上的其他 URL 访问,例如,您可以在localhost:8888
或 甚至 上运行该应用程序localhost:3000
。在其他端口上运行可以完全避免这些问题。
如果您的代码以某种方式基于主机名(例如sub.domain.com
),那么您确实应该重新编码/重新配置代码以使其更加灵活。让您的网站和应用程序尽可能地便携应该是一项对您作为开发人员非常有价值的技能,甚至可以让您的客户从长远来看受益。
答案3
为了扩大其他答案,原始hosts
条目允许您将您的网站命名为http://sub.domain.com
而不是http://10.10.1.10
。
第一列hosts
是 IP 地址,没有其他内容。您可以将目录寻址为http://sub.domain.com/MyFolder
或http://10.10.1.10/MyFolder
。
当您说实时网站上没有目录时,这是否意味着每个网站都有单独的子域?如果是这样,您可以将额外的条目添加到 中hosts
,例如:-
10.10.1.10 sub1.domain.com
10.10.1.10 sub2.domain.com
.......... ...............
10.10.1.10 subN.domain.com
如果您这样做,您可以使用您想要的任何子域,然后 Web 服务器可以识别哪个子域被寻址,从而适当地设置数据库。