カテゴリ | |
---|---|
サマリ | URLの短縮 / URLの出力を(絶対パスではなく)相対パスにする可能性について |
バージョン | 1.4.3 |
投稿者 | バイズ |
状態 | 完了 |
投稿日 | 2004-11-19 (金) 16:49:11 |
最近では社内の Wiki を HTML に保存し外部向け提供する必要がでてきました。外部向けのページにナビゲーション・バーやロゴなどを表示させない方法としてスキンを以下のように編集しました:
<link rel="stylesheet" href="skin/default.ja.css" type="text/css" media="screen" charset="Shift_JIS" /> <?php if (isset($_GET['external']) and ($_GET['external'] == 'yes')) { ?> <link rel="stylesheet" href="skin/print.ja.css" type="text/css" media="screen" charset="Shift_JIS" /> <?php } ?>
<div id="navigator"> <?php if ($is_page) { ?> (略) | <a href="<?php echo "$script?&external=yes&cmd=read&page=$r_page" ?>">外部向けページ</a> ]
今の問題は、ページにあるリンクの大半がフル URL*1 になっているため、保存されたファイルにあるリンクをクリックすると社内のサーバーに飛んでしまう事です。
Wiki のリンク出力を相対 URL*2 にする事はできるのでしょうか。
$script = './';
if ( 内部 ) { // REMOTE_ADDRやREMOTE_HOSTで判別 $script = 'http://inside.example.org/pukiwiki.php;' $extern = false; } else { $script = http://outside.example.org/pukiwiki.php; $extern = true; }と思ったら、「保存し外部向け提供する」でしたか…失礼。となると、置換スクリプトを用意するのが妥当な線ですかね。$scriptの部分は固定、<title>からページ名を拾い、リンクの$script?rawurlencode(ページ名)を削除というような簡単なもので。 -- 2004-11-19 (金) 20:30:29
<link rel="stylesheet" href="skin/default.ja.css" type="text/css" media="screen" charset="Shift_JIS" /> <?php if (isset($_GET['external']) and ($_GET['external'] == 'yes')) { ?> <link rel="stylesheet" href="skin/print.ja.css" type="text/css" media="screen" charset="Shift_JIS" /> <?php } ?><div id="navigator"> にリンクを追加
<div id="navigator"> <?php if ($is_page) { ?> (略) | <a href="<?php echo "$script?&external=yes&cmd=read&page=$r_page" ?>">外部向けページ</a> ]外部向けページの場合ページ内リンクを置換するように
<?php if (isset($_GET['external']) and ($_GET['external'] == 'yes')) { ?> <div id="body"><?php echo ereg_replace("href=\"[^\"]+$r_page#", 'href="#', $body) ?></div> <?php } else { ?> <div id="body"><?php echo $body ?></div> <?php } ?>これで HTML 自体は望む形になりましたが、ブラウザによって保存されたページは様々でまだ本件と別の問題が残っています。例えば、IE だとページ内リンクだとしても全部フルリンクに変換したり、Mozilla だと &ref(); を使った画像が IE で表示されなかったり*3。本当は外部向けページを別の .php ファイルでダウンロードツールを走り→HTML を zip してスタッフがすぐにダウンロードできる形のが一番混乱が起きなさそうだよね…これについての可能性を後日研究しますので、なにか発見する事ができたらまたお知らせ致します。みな様ありがとうございました。 -- バイズ 2004-11-22 (月) 10:49:45