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

メッセージ

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対応が前提になってしまいますが、最近の環境であれば、ほぼ問題無いようにも思います。

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

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

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



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

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 9.032 sec.

SourceForge