カテゴリ | |
---|---|
サマリ | 相対リンク |
バージョン | 1.3.2 |
投稿者 | kaw |
状態 | 完了 |
投稿日 | 2002-11-28 (THU) 21:41:28 |
HTMLでのhrefでは相対リンクが使えますが、PukiWikiではこれはどのように表現するのでしょうか?
同一サーバ内にある他のHTMLファイルは、できれば相対リンクで書きたいのですが。pukiwiki.ini.phpの$scriptからか、ApacheのDocumentRootからの相対リンクでいいかと思うのですが。
PukiWikiのInterWiki及びInterWikiのAliasではhttp:などから始めないとダメなのでPukiWiki以外へのリンクの相対指定はできません。またWikiName(BracketNameを含む)及びWikiNameのAliasでは、ピリオドをページの階層構造を表わすのに使用していますので、PukiWikiのページ間での相対指定のみ使用できます。
$scriptを引っ張ってきて置換するようなpluginでも書けば実現できるんでしょうか?
dev:BugTrack/103を参照してください。
dev:BugTrack/103を拝見しました。InterWikiNameを使うという話ですね。一見良さそうでしたが、リンク先に/を含めるとダメです。/がURIエンコードされて%2Fになり、うまく参照できません。ここまではMozilla 1.0.0での話。IE6だと、/がある場合は/のみならず、InterWikiNameの定義に使っている鈎括弧とかまでURIエンコーディングされてしまいます。
rawurlencode は、一見、便利そうで便利じゃないということが、proxyのルーチンを作っていて感じました。というのも、この kawさん指摘の通りです。IEの場合は、pathまでは、urlencodeするものの、/ は除外している。スペースは、%20 に変換されている。と思えば、query は、全てをurlencodeしている。で、そもそもとして、urlencodeは、クライアント側での解釈および実装なので、困ったものよねぇ。というところでしょう。サーバ側では、的確に urlencodeされた内容で GET なり HEADを出さないと、お叱りをしますからねぇ。一番顕著なのは、host の 最後の / をつけないでコールした場合に、location でお叱りを行うところで、もう、クライアント側責任だと語っていますからねぇ。と、解決でもない愚痴ですみません。
PukiWiki 1.4ではInterWikiNameの定義で相対指定が可能となりました。