Estoy escribiendo una aplicación web que se comporta de manera diferente según el prefijo de la URL. El formato es algo como:
https://myprefix.mycompany.com
La aplicación web se comporta de manera diferente según myprefix. Mi aplicación web extrae esa parte de la URL y actúa en consecuencia.
Sin embargo, cuando pruebo en mi local, uso una dirección de localhost:
https://localhost:1234
No debería hacer algo como:
https://myprefix.localhost:1234
¿Cuál es la mejor manera de probar este escenario?
Muchas gracias
Respuestas:
Desafortunadamente, debido a
localhost
que no es un dominio adecuado, no puede agregarle un subdominio de esa manera. Usted puede , sin embargo, engañar a su equipo en el pensamiento de que posee un dominio específico y probar cosas de esa manera. Por ejemplo, si tiene un sistema operativo basado en UNIX, abra (como raíz) el archivo/etc/hosts
y agregue una línea (o líneas) como esta:Ahora el ordenador tratar tanto
example.com
ysubdomain.example.com
como perteneciente a sí mismo. Si visita cualquiera de los dos en su navegador web, en principio funcionarán iguallocalhost
, pero su servidor web verá el dominio correcto en su encabezado de Host.fuente
http://subdomain.example.com:1234/whatever
. El puerto está completamente separado del dominio (los dominios se usan para identificar la máquina, los puertos se usan para identificar con qué programa en la máquina comunicarse).127.0.0.1 example.com sub.example.com sub2.example.com...
C:\Windows\System32\drivers\etc\hosts
. Deberá copiar el archivo en otro lugar que tenga permisos más bajos (como su escritorio), editarlo y luego pegarlo nuevamente en la carpeta (para evitar los permisos).No estoy seguro del mismo comportamiento en Windows. Estoy trabajando en Linux Mint.
Puede utilizarlo
lvh.me:port
como dominio local. Puede imaginar que su proyecto se implementa enlocalhost:port
en este dominio.En lugar de
sub.localhost:port
tener que usarsub.lvh.me:port
UPD
sub.localhost:port
trabaja en chrome. Firefox agrega automáticamente www. al comienzo del dominio ingresado que puede causar problemas con las pruebas de subdominiosfuente
172.16.0.42
, puede utilizarlahttps://myprefix.myapp.172.16.0.42.nip.io:1234
desde su PC o desde otras PC de su intranet.Para los usuarios de Windows, según esta respuesta y según este comentario, puede lograr esto agregando puertos a localhost a través del archivo de hosts que reside en esta ruta:
Y agregue líneas como las siguientes:
fuente
Solución de una línea para Windows
Abra PowerShell como administrador y ejecute el siguiente comando, reemplazando
sub.mydomain.com
con lo que desee.Descompostura:
`n
- nueva línea127.0.0.1
- dirección de loopbacksub.mydomain.com
- nombre de dominio| Out-File C:\Windows\System32\drivers\etc\hosts
- canalizar la cuerda alhosts
-encoding ASCII
- codificación correcta-append
- agregar al final del archivo (¡importante!)fuente
Deberías usar el
.test
dominio para cosas así. Para eso.test
es.localhost
no se supone que tenga subdominios.Hacerlo viola los estándares RFC aprobados.
localhost
tiene un registro A y en entornos IPv6, un registro AAAA. Todos los demás tipos de registros DNS, incluida SOA, están prohibidos.Sin un registro SOA, no puede ser un ápice de zona que tenga subregistros, por lo que no se permiten subdominios ni delegaciones. Incluso el reciente borrador de RFC titulado Let localhost sea localhost es consistente con esto.
fuente