*URL中のIPv6アドレスの扱い [#ve760ddb] -ページ: BugTrack -投稿者: [[CCS]] -優先順位: 低 -状態: CVS待ち -カテゴリー: 本体バグ -投稿日: 2004-05-29 (土) 02:10:52 -バージョン: 1.4.3 **メッセージ [#n14089c2] IPv6を使っている場合に、URLを生成するfunc.phpの583行目の部分がIPv6のことを考慮していないために、有効なURLが生成されません。 URLでIPv6を使う場合は、"http://[::1]/"というようにIPv6アドレスを'['と']'くくる必要があります。 修正はそれほど難しくないと思います。 私は、次のような修正で使っています。 --- func.php.org Mon Mar 22 00:03:18 2004 +++ func.php Sat May 29 02:03:47 2004 @@ -580,7 +580,14 @@ // scheme $script = ($_SERVER['SERVER_PORT'] == 443 ? 'https://' : 'http://'); // host - $script .= $_SERVER['SERVER_NAME']; + //$script .= $_SERVER['SERVER_NAME']; + if (preg_match("/:/", $_SERVER['SERVER_NAME']) == 0 + || $_SERVER['SERVER_NAME']{0} == '[') { + $script .= $_SERVER['SERVER_NAME']; + } + else { + $script .= '[' . $_SERVER['SERVER_NAME'] . ']'; + } // port $script .= ($_SERVER['SERVER_PORT'] == 80 ? '' : ':'.$_SERVER['SERVER_PORT']); // path ---- -関連:BugTrack/341 -- [[Ratbeta]] &new{2004-10-31 (日) 21:32:14}; -参考:[[RFC3986 Uniform Resource Identifier (URI): Generic Syntax>RFC:3986]] -- [[Mizar]] &new{2005-03-03 (木) 22:25:24}; -[[IPv6]] -- &new{2005-04-03 (日) 23:31:04}; #comment