Http 将子域添加到本地主机URL
我正在编写一个web应用程序,其行为因url前缀而异。格式类似于:Http 将子域添加到本地主机URL,http,url,web,Http,Url,Web,我正在编写一个web应用程序,其行为因url前缀而异。格式类似于: https://myprefix.mycompany.com https://myprefix.localhost:1234 web应用程序的行为因myprefix而异。我的web应用程序从URL中提取该部分并执行该操作 但是,当我在本地服务器上测试时,我使用本地主机地址: https://localhost:1234 我不能做这样的事情: https://myprefix.mycompany.co
https://myprefix.mycompany.com
https://myprefix.localhost:1234
web应用程序的行为因myprefix而异。我的web应用程序从URL中提取该部分并执行该操作
但是,当我在本地服务器上测试时,我使用本地主机地址:
https://localhost:1234
我不能做这样的事情:
https://myprefix.mycompany.com
https://myprefix.localhost:1234
我测试这个场景的最佳方法是什么
非常感谢不幸的是,因为
localhost
不是一个合适的域,所以不能像那样向其中添加子域。然而,你可以欺骗你的计算机,让它认为它拥有一个特定的域,然后用这种方式进行测试。例如,如果您有基于UNIX的操作系统,请以root用户身份打开文件/etc/hosts
,然后添加一行(或多行),如下所示:
127.0.0.1 example.com
127.0.0.1 subdomain.example.com
您的计算机现在将把
example.com
和subdomain.example.com
视为属于自己。如果您在web浏览器中访问其中一个,它们的工作原理与本地主机相同,但您的web服务器将在其主机头中看到正确的域。我不确定windows上是否有相同的行为。我在linux mint上工作
您可以使用lvh.me:port
作为本地域。您可以想象您的项目部署在这个域的localhost:port
上
您必须使用sub.lvh.me:port
更新
sub.localhost:port
在Chrome上工作
注意:Firefox会自动添加www。根据答案和每条注释,在输入域的开头添加www,这可能会导致Windows用户的子域测试出现问题,您可以通过位于以下路径的主机文件向localhost添加端口来实现这一点:
C:\Windows\System32\drivers\etc\hosts
并在其上附加以下行:
127.0.0.1 example.com
127.0.0.1 subdomain.example.com
适用于Windows的单线解决方案
以管理员身份打开PowerShell并运行以下命令,将sub.mydomain.com
替换为所需内容
"`n127.0.0.1 sub.mydomain.com" | Out-File C:\Windows\System32\drivers\etc\hosts -encoding ASCII -append
细分:
-换行符`n
-环回地址127.0.0.1
-域名sub.mydomain.com
-将字符串通过管道传输到|输出文件C:\Windows\System32\drivers\etc\hosts
主机
-正确编码-编码ASCII
-追加到文件末尾(重要!)-追加
- 您应该使用
.test
域进行类似的操作。这就是.test
的作用localhost
不应该有任何子域
这样做违反了批准的RFC标准localhost
有一个A记录,在IPv6环境中有一个AAAA记录。禁止所有其他DNS记录类型,包括SOA
如果没有SOA记录,它不能是具有子记录的区域顶点,因此不允许子域或委托。即使是最近的RFC草案“让localhost成为localhost”也与此一致。非常感谢您的回答。这正是我想要的。然而,我的web应用程序运行在一个端口上,比如说1234。我四处搜索,人们说没有办法在/etc/hosts中指定端口号。指定端口的最佳方式是什么?您必须像往常一样在URL中使用端口,例如,
http://subdomain.example.com:1234/whatever
。端口与域完全分离(域用于标识计算机,端口用于标识计算机上要与之通信的程序)。或者,如果您可以以root用户身份运行软件(用于测试),您可以只使用端口80,这是默认值,因此,您不必指定域名。只需在ip地址后列出域名:127.0.0.1 example.com sub.example.com sub2.example.com…
这也适用于windows。windows上的主机文件位于:C:\windows\System32\drivers\etc\hosts
。您需要将文件复制到权限较低的其他地方(如桌面),对其进行编辑,然后将其粘贴回文件夹(以解决权限问题)。以下是此问题的解决方案,我可以确认此方法也适用于Windows。Internet Explorer、Edge、Firefox和Chrome浏览器完美无瑕!我用的是firefox和chrome,谢谢!为了增加灵活性,您还可以使用服务nio.io或xip.io。它们允许将任何IP地址映射到任何子域。例如,你的同事也可以使用相同的URL访问你的应用程序。例如,如果工作站的IP地址为172.16.0.42
,则可以使用https://myprefix.myapp.172.16.0.42.nip.io:1234
从您的电脑或内部网中的其他电脑。