web-dev-qa-db-ja.com

同じLAN上の別のコンピューターからアクセスしたときに、Webサイトが正しく表示されないのはなぜですか

ローカルホームネットワークでWebサーバー(Ubuntu)を実行しています。私はルーターの後ろにいます。 WAN直接IPを使用しています。ホームネットワークに接続しておらず、WAN直接IPを介してWebサイトにアクセスしている場合、Webサイトは正しく表示され、すべてが機能します。

ルーターの背後にある自宅のLANで、WAN直接アクセスすると、ルーターの管理者ログインページに移動します。これは正常です。しかし...

ホームLAN上の別のコンピューターから(ホームLAN IPアドレスを介して)自分のWebサイトにアクセスすると、Webサイトにアクセスできますが、レイアウト表示が壊れており、リンクをクリックするとWANダイレクトIPに移動します) (私のルーターの管理者ログインページ)。

自宅のLANからアクセスするときに、Webサイトを正しく表示し、リンクを機能させるにはどうすればよいですか?

1
TokyoDan

CSSとJavaScriptのURLを確認してください。サイトへのアクセス方法によってURLルーティングが異なるように思われるため、絶対リンクから相対リンクに切り替える必要がある場合があります。

これを行う最も簡単な方法は、Firebugまたは開発者ツール([リソース]タブ)を使用して、ブラウザーがロードしようとしているリソースを確認することです。スタイルシートが正しくロードされていることを確認します(スタイルシートを選択してコンテンツを表示できるはずです)。それらがそうでない場合、または[リソース]タブでエラーが発生した場合は、ブラウザが参照しているURLをチェックし、それが正しいURLであることを確認してください。

お使いのブラウザがLANIPアドレスでスタイルシートを探していることは間違いありませんが、WAN IPアドレスを探しているはずです。

4
Adam

ルーターが「ヘアピンNAT」を正しく実行していません。安価なホームゲートウェイの多くには、バグのあるNATコードが正しく機能しない)があります。

ルーターのポートマッピング(別名「ポートフォワーディング」)またはDMZ(別名「デフォルトホスト」、「要塞ホスト」など)機能が正しく設定されているようです。ルーターのWAN側から、ルーターのパブリックWAN IPアドレスにブラウザーを向けると、Webサーバーからページを取得するため。

ただし、内部ネットワークを使用している場合は、パブリックWANルーターのIPアドレスに接続すると、ルーターの管理ページではなく、Webサーバーのページが表示されます。ルーターの場合NATプライベートIPアドレスでポート80に接続すると、管理ページを提供したいのですが、それは問題ありません。ただし、パブリックWAN IPアドレスではありません。

NATのプライベート側のクライアントを使用していて、そのNATプライベートIPアドレスを介してWebサーバーに直接アクセスしようとすると、ロードされる場合があります最初のHTMLファイルは「 http://192.168.0.254/ "」のようなURLに基​​づいて問題ありませんが、ブラウザがCSSファイルと画像をロードしようとすると、おそらく「-」のようなURLが形成されます。 http://mydomain.com/styles.css "これは、パブリックWANルーターのIPアドレスを意味します。これは、バグのあるルーターのため、ルーターの管理Webサーバーを意味します。はそれらのリクエスト自体をインターセプトしていて、それらのリソースがないため、問題が発生します。

1
Spiff

絶対リンクではなく相対リンクが必要です。したがって、HTMLでこのようなものの代わりに:

<link rel="stylesheet" type="text/css" href="http://example.com/mysite.css" />
<img src="http://example.com/images/someimage.png" alt="Some Image" />

次のように表示する必要があります。

<link rel="stylesheet" type="text/css" href="/mysite.css" />
<img src="/images/someimage.png" alt="Some Image" />
1
Joel Coehoorn

ドメイン名(例:site.com)を使用して、ネットワークの外部からテーマを読み込もうとしています。

簡単な修正は、/ etc/hostsファイルを編集して追加することです

IP.OF.LOCAL.WEBSERVER site.com sitehostname
0
RandomUser

私はこのページに行きました、そして私はWordpressを持っているので、これは同様の問題を抱えている人に役立つかもしれません。

アドレスバーのlocalhostを使用して、ブラウザにWebサイトが正常に読み込まれるが、コンピュータのIPアドレスは使用されない場合(例: 192.168.1.120の場合、次のことが役立つはずです。

  1. Localhost/wp-admin /options-general.phpに移動します
  2. WordPressアドレスURLおよびサイトアドレスURLフィールドで、「localhost」をサーバーのローカルIPアドレスに置き換えます

これにより、作成/参照していた絶対リンクに関する問題が修正されました。

0
zeta