我正在编写一个Web应用程序,根据url前缀的不同,它的行为会有所不同.格式如下:
https://myprefix.mycompany.com
Run Code Online (Sandbox Code Playgroud)
基于myprefix,Web应用程序的行为有所不同.我的网络应用程序从URL中提取该部分并对其进行操作.
但是,当我在本地测试时,我使用localhost地址:
https://localhost:1234
Run Code Online (Sandbox Code Playgroud)
我不会做类似的事情:
https://myprefix.localhost:1234
Run Code Online (Sandbox Code Playgroud)
测试这种情况的最佳方法是什么?
非常感谢
Mat*_*ude 111
不幸的是,因为localhost
不是一个合适的域,你不能像这样添加一个子域.但是,您可以欺骗计算机,使其认为它拥有特定的域并以这种方式进行测试.例如,如果您有基于UNIX的操作系统,请打开(以root用户身份)文件/etc/hosts
并添加一行(或多行),如下所示:
127.0.0.1 example.com
127.0.0.1 subdomain.example.com
Run Code Online (Sandbox Code Playgroud)
您的计算机现在将对待它们example.com
并且subdomain.example.com
属于它自己.如果您在Web浏览器中访问它们,原则上它们的工作方式相同localhost
,但您的Web服务器将在其Host标头中看到正确的域.
Vas*_*yov 28
我不确定Windows的相同行为.我正在研究linux mint.
您可以将其lvh.me:port
用作本地域.您可以想象您的项目已部署localhost:port
在此域上.
而不是sub.localhost:port
你要使用sub.lvh.me:port
UPD
sub.localhost:port
在chrome工作.Firefox会自动添加www.在输入域的开头可能会导致子域测试问题
对于 Windows 用户,根据此答案和此评论,您可以通过驻留在此路径的主机文件将端口添加到 localhost 来实现此目的:
C:\Windows\System32\drivers\etc\hosts
Run Code Online (Sandbox Code Playgroud)
并在其后面追加如下几行:
127.0.0.1 example.com
127.0.0.1 subdomain.example.com
Run Code Online (Sandbox Code Playgroud)
以管理员身份打开PowerShell并运行以下命令,替换为您想要的任何内容。sub.mydomain.com
"`n127.0.0.1 sub.mydomain.com" | Out-File C:\Windows\System32\drivers\etc\hosts -encoding ASCII -append
Run Code Online (Sandbox Code Playgroud)
`n
- 新队127.0.0.1
- 环回地址sub.mydomain.com
- 域名| Out-File C:\Windows\System32\drivers\etc\hosts
- 将字符串通过管道传输到hosts
-encoding ASCII
- 正确的编码-append
- 附加到文件末尾(重要!)小智 5
您应该将.test
域用于类似的事情。这就是.test
目的。 localhost
不应该有任何子域。
这样做违反了批准的 RFC 标准。 localhost
有 A 记录,在 IPv6 环境中,有 AAAA 记录。禁止所有其他 DNS 记录类型,包括 SOA。
如果没有 SOA 记录,则它不能是具有子记录的区域顶点,因此不允许子域或委派。甚至最近标题为 Let localhost be localhost 的 RFC 草案也与此一致。
归档时间: |
|
查看次数: |
37187 次 |
最近记录: |