DDNSで外部からアクセスする場合の$scriptについて

  • ページ: BugTrack
  • 投稿者: kuchiba?
  • 優先順位: 低
  • 状態: 却下
  • カテゴリー: その他
  • 投稿日: 2004-06-09 (水) 15:52:44
  • バージョン: 1.4.3

メッセージ

http://www.dyndns.org/ で登録したアドレス(例えば puki.dyndns.org)で、LAN内部 のpukiwikiにアクセスすると $script にローカルのサーバ名(例えば intra.hoge.jp) が出てきてしまって困る。
という経験をしました。

つまり、

http://puki.dyndns.org/pukiwiki/pukiwiki.php

と表示されて欲しい時に

http://intra.hoge.jp/pukiwiki/pukiwiki.php

となってしまい、外部からのアクセスでは名前解決ができない状況です。

そこで、func.php の get_script_uri() を

--- func.php.orig       Wed Jun  9 11:31:03 2004
+++ func.php    Wed Jun  9 15:37:58 2004
@@ -579,8 +579,18 @@
 {
        // scheme
        $script  = ($_SERVER['SERVER_PORT'] == 443 ? 'https://' : 'http://');
+
        // host
-       $script .= $_SERVER['SERVER_NAME'];
+       if ($_SERVER['HTTP_HOST'])
+       {
+               $script .= ereg_replace(":[0-9]+$", "", $_SERVER['HTTP_HOST']);
+       }
+       else
+       {
+               $script .= $_SERVER['SERVER_NAME'];
+       }
+       // $script .= $_SERVER['SERVER_NAME'];
+
        // port
        $script .= ($_SERVER['SERVER_PORT'] == 80 ? '' : ':'.$_SERVER['SERVER_PORT']);
        // path

とすることで、DDNSを使用してのアクセスに対して、$scriptによるURIの表示が正しくなるようにしてみました。

HTTP_HOSTを使うのでHTTP 1.1対応が前提になってしまいますが、最近の環境であれば、ほぼ問題無いようにも思います。

もっとつきつめればボロが出てくるとは思いますが、とりあえず我が家の環境

  • LAN内部での名前解決はLAN内で稼動しているDNSサーバ(LAN-DNS)で行なう。
  • LAN-DNSで解決できない名前は、LAN-DNSが外部に問い合わせて解決する。
  • ApacheでHTTPSを受けつける。

では現状動作しています。

DDNSで動かしている人もいらっしゃると思うのですが、このような修正はアリでしょうか?


  • PukiWikiの問題と言うよりは、Apacheの運用上の問題ではないでしょうか。ApacheのServerNameの設定をDDNSで登録したホスト名に変え忘れているだけのように思われます。もし「ローカルからと外部からとでホスト名を変えたい」「外部から複数のホスト名でアクセスできるようにしたい」というのであれば、ネームベースVirtualHostの設定もするのがよろしいかと思います。ただし、SSLを使用する場合にはネームベースVirtualHostは十全に機能しませんので、Webサーバに対して複数のIPアドレスを付与してそれぞれのIPアドレスに各々のホスト名を対応させるか、受け付けるポート番号をホスト名ごとに変える、という感じの対処が必要になります。但し、PukiWikiは $_SERVER['SERVER_PORT'] == 443 の場合のみがHTTPSであると仮定していますので、ポート番号を変更する場合にはPukiWikiの修正が必要になると思われます。 -- Mizar 2004-06-12 (土) 10:34:24

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-06-12 (土) 10:38:19
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.191 sec.

OSDN