Estou escrevendo um aplicativo da web que se comporta de maneira diferente dependendo de um prefixo de url. O formato é algo como:
https://myprefix.mycompany.com
O aplicativo da web se comporta de maneira diferente com base em myprefix. Meu aplicativo da web extrai essa parte da URL e age sobre ela.
No entanto, quando eu testo no meu local, uso um endereço de host local:
https://localhost:1234
Eu não poderia fazer algo como:
https://myprefix.localhost:1234
Qual é a melhor maneira de testar esse cenário?
Muito Obrigado
Respostas:
Infelizmente, por
localhost
não ser um domínio adequado, você não pode adicionar um subdomínio a ele dessa forma. Você pode , entretanto, enganar seu computador fazendo-o pensar que possui um domínio específico e testar as coisas dessa forma. Por exemplo, se você tiver um sistema operacional baseado em UNIX, abra (como root) o arquivo/etc/hosts
e adicione uma linha (ou linhas) como esta:Seu computador irá agora tratar tanto
example.com
esubdomain.example.com
como pertencente a si mesmo. Se você visitar qualquer um deles em seu navegador, eles funcionarão da mesma forma, a princípiolocalhost
, mas seu servidor verá o domínio correto no cabeçalho Host.fonte
http://subdomain.example.com:1234/whatever
,. A porta é totalmente separada do domínio (os domínios são usados para identificar a máquina, as portas são usadas para identificar com qual programa na máquina se deve comunicar).127.0.0.1 example.com sub.example.com sub2.example.com...
C:\Windows\System32\drivers\etc\hosts
. Você precisará copiar o arquivo para outro lugar que tenha menos permissões, (como sua área de trabalho), para editá-lo e colá-lo de volta na pasta (para contornar as permissões).Não tenho certeza sobre o mesmo comportamento no Windows. Estou trabalhando no linux mint.
Você pode usar
lvh.me:port
como um domínio local. Você pode imaginar que seu projeto está implantadolocalhost:port
neste domínio.Em vez de
sub.localhost:port
você usarsub.lvh.me:port
UPD
sub.localhost:port
trabalha na chrome. O Firefox adiciona www automaticamente. no início do domínio inserido que pode causar problemas com o teste de subdomíniosfonte
172.16.0.42
, você pode usarhttps://myprefix.myapp.172.16.0.42.nip.io:1234
do seu PC ou de outros PCs da sua intranet.Para usuários do Windows, com base nesta resposta e de acordo com este comentário, você pode conseguir isso adicionando portas ao host local por meio do arquivo hosts que reside neste caminho:
E acrescente linhas como as seguintes a ele:
fonte
Solução One-Line para Windows
Abra o PowerShell como administrador e execute o seguinte comando, substituindo
sub.mydomain.com
com o que você quiser.Demolir:
`n
- nova linha127.0.0.1
- endereço de loopbacksub.mydomain.com
- nome do domínio| Out-File C:\Windows\System32\drivers\etc\hosts
- canalize a corda para ohosts
-encoding ASCII
- codificação correta-append
- anexar ao final do arquivo (importante!)fonte
Você deve usar o
.test
domínio para coisas assim. É para isso que.test
serve.localhost
não é suposto ter subdomínios.Fazer isso viola os padrões RFC aprovados.
localhost
tem um registro A e em ambientes IPv6, um registro AAAA. Todos os outros tipos de registro DNS, incluindo SOA, são proibidos.Sem um registro SOA, não pode ser um ápice de zona com sub-registros, portanto, nenhum subdomínio ou delegação é permitido. Até mesmo o rascunho de RFC recente intitulado Let localhost be localhost é consistente com isso.
fonte