* 相対/絶対 URI について($script、get_script_uri等) [#ge7ad818] - ページ: [[BugTrack2]] - 投稿者: [[ぃぉぃぉ]] - 優先順位: 普通 - 状態: 提案 - カテゴリー: その他 - 投稿日: 2007-03-08 (木) 20:37:49 - バージョン: ** メッセージ [#ff7b6db9] [[cvs:lib/func.php]]で、get_script_uri()は // Get absolute-URI of this script とコメントがあるように、絶対URIを出力するための関数と思われます。 get_script_uri()をgrepしてみましたが、24ファイルほどヒットしました。ほとんど下名(???)は使ったことのないプラグインだったのでよくわかりませんが、ほとんどがこの関数をつかわず相対URIの扱いで構わない気がしますが、いかがでしょうか。 ***相対URI化のメリット [#n446710c] -転送データ量が減る -get_script_uri()を呼ばずにすむ(空の文字列に置き換えればよい)ので速度も上がる ~といったメリットが期待されます。これらの修正を行って動作確認でもして、変更箇所を示したらofficialに採用される可能性はあるでしょうか?それならやろうかなと思うのですが。 もともと相対URIで使用したかったのは、当方の環境ではDeleGateを使用してSSL化しているため、Webサーバーから見ると常に平文通信のため、リンクが全てhttpsにならずにhttpになってしまったのです。 で、相対URIならいけるかな、と。試しにget_script_uriで$script=''を返すようにしましたが、それなりに動きました。 ***相対URI化すべきでない物(絶対URIのまま使用しないといけない物) [#led2f1e6] -RSS出力 ... カレントのURLが存在しないため、相対的にはリンクにたどり着けない。 -NAVIBARのTOPICPATH'''非'''使用時(pukiwiki.skin.php)のようにアドレスを表示する場合に、相対パスしか表示されなく見た目が悪い。 --リンクは絶対URIと同様の働きをする。 --$link['reload']の出力が変わっている、ということは、get_script_uriをgrepしただけでは全ての影響箇所を見つけられていない。 -クッキーの有効パスに利用しているようなプラグイン ***相対URI化のデメリット [#r501d90b] - ありますか? ~ご意見下さいm(_ _)m -- [[ぃぉぃぉ]] &new{2007-03-08 (木) 20:37:49}; ***用語の整理 [#n450c028] ~勘違いがあるとまずいので、整理しておきました。URL にクエリが含まれることの多い PukiWiki では「~ URI」や「~ URL」が適切な用語になります。 「~パス」にクエリは含まれません。 :絶対URI|http://example.com/ http://example.com/path?query=value などの完全な URI。 :相対URI|./path ../path?query /path?query など、絶対・相対パスとクエリを含む。 :絶対パス|/path のように必ず ''/'' で始まる。 :相対パス|./path ../path path -------- - 絶対URL の取得に失敗して、質問箱にくる人もよくいますよね。相対パスでよいならその辺のことで質問箱にくる人は少なくなって良いかもしれません。 -- &new{2007-03-09 (金) 08:08:11}; - get_script_uri() から 例えば http://pukiwiki.sourceforge.jp/dev/ のようなアドレスを取得して、クッキーの有効パスに利用しているようなプラグインもあります。 -- &new{2007-03-09 (金) 08:11:40}; -- これに対してはむしろ index.php のあるディレクトリURLを直接返す関数が欲しいです。たしか get_script_uri 内で index.php をくっつけてますよね?くっつけてから分離するというのは無駄っぽいので。 -- &new{2007-03-09 (金) 08:16:42}; -- 絶対パスが必要なものはそういう対応をする必要があると思います。具体的なplugin等が分かればどんどん紹介して下さい。 -- [[ぃぉぃぉ]] &new{2007-03-09 (金) 12:34:03}; - <a href="?hoge"> は Another HTML-lint で怒られたと思います。$script = 'index.php' にしないといけないと思います。 -- &new{2007-03-09 (金) 08:21:13}; -- そうすると今度は index.php を省略した URL を使用できなくなると思います。大したことではないと思うかどうかは人によりますね。 -- &new{2007-03-09 (金) 08:21:59}; -- <a href="./?hoge">なら通りそうですた。$script = './'でok? -- [[ぃぉぃぉ]] &new{2007-03-09 (金) 09:38:33}; #comment