localhost URLにサブドメインを追加する


97

私は、URLプレフィックスによって異なる動作をするWebアプリケーションを作成しています。形式は次のようなものです。

   https://myprefix.mycompany.com

Webアプリの動作は、myprefixに基づいて異なります。私のWebアプリはURLからその部分を抽出し、それに基づいて動作します。

ただし、ローカルでテストするときは、localhostアドレスを使用します。

   https://localhost:1234

私は次のようなことはできません:

   https://myprefix.localhost:1234

このシナリオをテストするための最良の方法は何ですか?

どうもありがとう


これがこの問題の解決策です 。stackoverflow.com
a/29629675/

回答:


139

残念ながら、localhostは適切なドメインではないため、そのようにサブドメインを追加することはできません。あなたはできる、しかし、お使いのコンピュータは、それがそのように特定のドメインやテストのものを所有している考えにトリック。たとえば、UNIXベースのオペレーティングシステムを使用している場合は、ファイル/etc/hostsを(ルートとして)開き、次のような行を追加します。

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

お使いのコンピュータには今の両方を扱いますexample.comし、subdomain.example.com自分自身に属するものとして。Webブラウザーでどちらかにアクセスすると、原則的にと同じように機能しlocalhostますが、WebサーバーのHostヘッダーに正しいドメインが表示されます。


回答ありがとうございます。これがまさに私が欲しいものです。しかし、私のWebアプリはポート(1234など)で実行されています。周りを検索したところ、/ etc / hostsにポート番号を指定する方法はないと人々から言われました。ポートを指定する最良の方法は何ですか?
ケビン

7
通常どおり、URLでポートを使用するだけで済みます(例:)http://subdomain.example.com:1234/whatever。ポートはドメインから完全に分離されています(ドメインはマシンを識別するために使用され、ポートはマシン上のどのプログラムと通信するかを識別するために使用されます)。
Matt Patenaude 2013

あるいは、ソフトウェアをroot(テスト用)として実行できる場合は、デフォルトであるポート80を使用するだけでよいので、ポートを指定する必要はありません。
Matt Patenaude 2013

4
:一つは、単にIPアドレスの後にドメイン名をリストでき 127.0.0.1 example.com sub.example.com sub2.example.com...
オートマトン

5
これはWindowsでも機能します。Windows上のホストファイルは次の場所にありますC:\Windows\System32\drivers\etc\hosts。ファイルを編集してからフォルダに貼り付けて戻す(アクセス許可を回避するため)には、ファイルをデスクトップなどのアクセス許可の低い別の場所にコピーする必要があります。
Lindsay-Needs-Sleep

33

Windowsでの同じ動作についてはわかりません。私はLinuxミントに取り組んでいます。

lvh.me:portローカルドメインとして使用できます。プロジェクトがlocalhost:portこのドメインにデプロイされていると想像できます。

sub.localhost:portあなたが使用する代わりにsub.lvh.me:port

UPD

sub.localhost:portクロムで動作します。Firefoxは自動的にwwwを追加します。入力されたドメインの最初で、サブドメインのテストで問題が発生する可能性があります


これはWindowsでも動作することを確認できます。Internet Explorer、Edge、Firefox、Chromeブラウザーは問題なく動作します!
ホセA

私はFirefoxを使用しており、Chromeのヒントで一日を節約できました。
ZekeMidas

2
さらに柔軟性を高めるために、サービスnio.ioまたはxip.ioを使用することもできます。任意のIPアドレスを任意のサブドメインにマッピングできます。たとえば、同僚も同じURLを使用してアプリにアクセスできます。たとえば、ワークステーションのIPアドレスがの場合、PCまたはイントラネット内の他のPCから172.16.0.42使用できhttps://myprefix.myapp.172.16.0.42.nip.io:1234ます。
mh8020

5

Windowsユーザーの場合、この回答とこのコメントに基づいて、次のパスにあるhostsファイルを介してlocalhostにポートを追加することでこれを実現できます。

C:\Windows\System32\drivers\etc\hosts

そしてそれに次のような行を追加します:

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

1

Windowsの1行ソリューション

管理者として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 -ドメイン名
  • | Out-File C:\Windows\System32\drivers\etc\hosts -文字列をパイプに hosts
  • -encoding ASCII -正しいエンコーディング
  • -append-ファイルの最後に追加(重要!)

1

.testそのようなことにドメインを使用する必要があります。それが.test目的です。 localhostサブドメインを持つことは想定されていません。

そうすることは、承認されたRFC標準に違反します。 localhostAレコードがあり、IPv6環境ではAAAAレコードがあります。SOAを含む他のすべてのDNSレコードタイプは禁止されています。

SOAレコードがない場合、サブレコードを持つゾーンの頂点にすることはできないため、サブドメインや委任は許可されません。Let localhost be localhostというタイトルの最近のRFCドラフトでさえ、これと一致しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.