Я пишу веб-приложение, которое ведет себя по-разному в зависимости от префикса URL-адреса. Формат примерно такой:
https://myprefix.mycompany.com
Веб-приложение ведет себя по-разному в зависимости от myprefix. Мое веб-приложение извлекает эту часть из URL-адреса и действует в соответствии с ней.
Однако, когда я тестирую на своем локальном компьютере, я использую адрес localhost:
https://localhost:1234
Я не советовал делать что-то вроде:
https://myprefix.localhost:1234
Как мне лучше всего протестировать этот сценарий?
Большое спасибо
Ответы:
К сожалению, поскольку
localhost
это неподходящий домен, вы не можете добавить к нему подобный субдомен. Однако вы можете обмануть свой компьютер, заставив его думать, что он владеет определенным доменом, и таким образом все протестировать. Например, если у вас операционная система на основе UNIX, откройте (как root) файл/etc/hosts
и добавьте строку (или строки) вроде этой:Ваш компьютер теперь будет рассматривать оба
example.com
иsubdomain.example.com
как принадлежащие себе. Если вы посетите любой из них в своем веб-браузере, они в принципе будут работать так же, какlocalhost
, но ваш веб-сервер увидит правильный домен в своем заголовке Host.источник
http://subdomain.example.com:1234/whatever
. Порт полностью отделен от домена (домены используются для идентификации машины, порты используются для определения, с какой программой на машине взаимодействовать).127.0.0.1 example.com sub.example.com sub2.example.com...
C:\Windows\System32\drivers\etc\hosts
. Вам нужно будет скопировать файл в другое место с более низкими разрешениями (например, на рабочий стол), чтобы отредактировать его, а затем вставить обратно в папку (чтобы обойти разрешения).Я не уверен в таком же поведении в окнах. Я работаю над linux mint.
Можно использовать
lvh.me:port
как локальный домен. Вы можете представить, что ваш проект развернутlocalhost:port
в этом домене.Вместо того
sub.localhost:port
, чтобы использоватьsub.lvh.me:port
UPD
sub.localhost:port
на хроме работает. Firefox автоматически добавляет www. в начале введенного домена, что может вызвать проблемы с тестированием поддоменовисточник
172.16.0.42
, вы можете использовать егоhttps://myprefix.myapp.172.16.0.42.nip.io:1234
со своего ПК или с других ПК в вашей интрасети.Для пользователей Windows, основываясь на этом ответе и в этом комментарии, вы можете добиться этого, добавив порты в localhost через файл hosts, который находится по этому пути:
И добавьте к нему следующие строки:
источник
Однострочное решение для Windows
Откройте PowerShell от имени администратора и выполните следующую команду, заменив
sub.mydomain.com
все, что хотите.Сломать:
`n
- новая линия127.0.0.1
- адрес обратной связиsub.mydomain.com
- доменное имя| Out-File C:\Windows\System32\drivers\etc\hosts
- протяните тетиву кhosts
-encoding ASCII
- правильная кодировка-append
- добавить в конец файла (важно!)источник
Вы должны использовать
.test
домен для подобных вещей. Это то.test
, для чего.localhost
не должно иметь поддоменов.Это нарушает утвержденные стандарты RFC.
localhost
имеет запись A, а в средах IPv6 - запись AAAA. Все другие типы записей DNS, включая SOA, запрещены.Без записи SOA это не может быть вершина зоны, имеющая подзаписи, поэтому ни поддомены, ни делегирование не разрешены. Даже недавний проект RFC под названием Let localhost be localhost согласуется с этим.
источник