#author("2022-04-10T20:12:34+09:00","","")
#author("2022-04-10T20:45:58+09:00","","")
**alias.inc.php [#t867173e]
|RIGHT:100|LEFT:360|c
|~サマリ|指定したページへジャンプする(≒ページに別名を付ける)|
|~リビジョン|1.4|
|~対応バージョン|1.4.7|
|~投稿者|[[コチ]]|
|~投稿日|&new{2004-05-22 (SAT) 03:43:41};|
***概要 [#cd494e61]
:機能|ページを表示せずに、指定した別のWikiページへジャンプする。
:目的|「ひとつのページに対して複数のページ名をつける」機能を''擬似的に''実現すること。
:動作|ページのconvert時にこのプラグインが呼び出された時点で、引数で与えられたWikiページへのジャンプを要求するHTTPヘッダを送信して終了。クライアント側では元のページは表示されずにジャンプ先ページが表示される。

※相性の悪いプラグインがあるかもしれません。((他のページをインクルードするような動きをするもの。))

数秒間待ってからジャンプさせたい場合、このプラグインでは原理的に不可能なので[[redirectプラグイン>自作プラグイン/redirect.inc.php]]を使用してください。
***掲載先 [#r9951f97]
[[こちら:http://elfen.s292.xrea.com/index.php?%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Falias.inc.php]]に掲載してます。

***関連 [#o028558c]
-[[続・質問箱/139]]
-[[続・質問箱/169]]
-[[欲しいプラグイン/126]] ページに別名が付けれるようなプラグイン

***コメント [#s8f3d164]
-[[コチ]] &new{2004-05-22 (SAT) 03:44:30};
~何か根本的にやってはいけないことをしているかもしれませんが、勉強のため恐る恐る公開させていただきます。露払いにご協力いただけましたら幸いです。
-[[名無しさん]] &new{2004-05-22 (SAT) 09:31:51};
~PukiWikiの[[エイリアス>整形ルール#u1026558]]と区別するために、aliasプラグインというよりjumpプラグインといったほうがいいのでは?
--[[名無しさん]] &new{2004-05-22 (SAT) 13:43:07};
~jumpだと、センスがありませんね。別名ページから見ればjumpでも、別名を付与したい場合に利用するという意味ですから、今のままが適切でしょう。jumpだと、その存在意味が理解し辛いと思います。
--[[名無しさん]] &new{2004-05-22 (SAT) 16:02:00};
~aliasはすでにあるんだから、ほかの名前をつけるべき。
--[[名無しさん]] &new{2004-05-22 (SAT) 18:18:31};
~プラグインとしてあるんですか?
--[[名無しさん]] &new{2004-05-22 (SAT) 18:27:37};
~ほかの名前をつけるべき。自作も大変ですね。命令みたい。
-[[名無しさん]] &new{2004-05-22 (SAT) 18:33:53};
~このプラグインを記述したページは、プラグインを削除しない限り、二度と修正できない状況となる。ということですか?
--[[名無しさん]] &new{2004-05-22 (SAT) 19:34:23};
~?cmd=edit&page=urlencodeされたページ名 で直接編集画面を呼び出せば良いという話では?
-[[名無しさん]] &new{2004-05-22 (SAT) 21:10:12};
~既存のページにこのプラグインを記述するだけで、簡単に荒らしまくることが可能ですね
--[[名無しさん]] &new{2004-05-22 (SAT) 21:15:34};
~凍結したページのみで有効に動作するようにすれば…
--[[名無しさん]] &new{2004-05-22 (SAT) 21:37:14};
~通常の荒らしとなにか違うのでしょうか?ページを真っ白にするのもrefプラグインでグロ画像貼り付けるのもこのプラグインであちこちのページにジャンプさせられるのも「復帰可能である限り許容する」という点でおなじなのでは?
---[[名無しさん]] &new{2004-05-23 (SUN) 03:43:35};
~同じではないでしょ。?cmd=edit&page=urlencodeされたページ名 で直接編集画面を呼び出さないと、改竄を修正できないのだから。
---[[名無しさん]] &new{2004-05-23 (SUN) 08:23:47};
~「荒らしまくることが可能」ってそれだけのこと?公開ページに書いてあるようにInterWikiNameの「編集」やlookupプラグイン使えばいい話では?
-[[コチ]] &new{2004-05-22 (SAT) 22:17:35};
~連続でジャンプできる回数を制限できるようにしました。荒らすことができるのはWikiなので当然だと思って作っています。Wikiの動作に支障が出たり不可逆的な被害が出るようでしたらご報告ください。
-[[けじゃ]] &new{2004-08-02 (MON) 17:28:54};
~大変便利なプラグインを作成いただきありがとうございます。実は要望がありましてどこから転送されてきたのかをページ内に表示することはできないでしょうか?現在の仕様ではpukiwiki.phpに投げてしまっているので不可能だと思いますが、転送元のページを表示して欲しいと思います。
--多忙のため対応遅れました。かなり今さらですが、[[aliastrace.inc.php>http://elfen.s292.xrea.com/index.php?%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Faliastrace.inc.php]]というのを作りましたのでよろしければ。。 -- [[コチ]] &new{2004-09-02 (木) 12:13:46};
--[[コチ]]さん、希望していた通りの動作です!ありがとうございました!!(^_^)v -- [[けじゃ]] &new{2004-09-02 (木) 21:36:59};
-1.4.4に暫定対応しました。 -- [[コチ]] &new{2004-11-08 (月) 04:52:38};
-alias、aliastraceをアップデートしました。変更点は以下の通りです。-- [[コチ]] &new{2005-01-17 (月) 00:16:19};~
両方…一部の環境で動作しない問題を回避しました。~
alias…プレビューでジャンプしないようにしました。~
aliastrace…転送元の編集ページへのリンクを表示するようにしました。
-探してたプラグインであってよかった!のですが、アンカー対応してなかったのでちょこっといじって使ってます。初書き込み&PHP素人なので作法にあってなかったらごめんなさ><。修正は以下な感じでしました。 -- [[名無しさん]] &new{2005-01-20 (木) 00:30:09};
 57,62c57
 < // add start
 <       list($page_name, $aname) = split('[#]', $dest_page);
 < // add by end
 < // change start
 <       //if(!is_page($dest_page))
 <       if(!is_page($page_name))
 ---
 >       if(!is_page($dest_page))
 64d58
 < // change end
 104,107c98
 < // change start
 < //    $url = $script.'?cmd=read&page='.rawurlencode($dest_page).$history;
 <       $url = $script.'?cmd=read&page='.rawurlencode($page_name).$history."#".$aname;
 < // change end
 ---
 >       $url = $script.'?cmd=read&page='.rawurlencode($dest_page).$history;
-- ちなみに、#alias(ページ名#アンカー名)で飛び先ページのアンカーに飛びます。 -- [[名無しさん]] &new{2005-01-20 (木) 00:34:01};
-そういえばアンカーに配慮していませんでしたたね (^^;。Ver.1.4で対応しました。 -- [[コチ]] &new{2005-01-20 (木) 01:51:28};
-おぉ!ありがとうございます。早速本家に入れ替えます! -- [[名無しさん]] &new{2005-01-21 (金) 00:06:02};
-連続ジャンプ回数制限でエラーがでたときに、aliastrace のように転送元のページへの編集リンクを表示できるとうれしいです。alias ループいたずらをされたときに修正しやすくなるかと思います。ソースを見てないのであれですが、つまりは alias と aliastrace の統合なのかもしれません。alias で引数がない、もしくは回数制限エラーが出た場合 aliastrace の動作になってくれるといいと思います。--  [[grapse]] &new{2005-02-01 (火) 04:47:20};
-あと例えば、alias1 -> alias2 -> alias1 のようにいたずらをされて、alias2 のページを編集して #alias を消したとしても、alias1 のページを参照するとまだ「ジャンプの回数が上限を超えました」エラーがでます。これはどうすればよいのでしょう? --  [[grapse]] &new{2005-02-01 (火) 05:05:40};
--要望につきましては暇を見て対応します。「ジャンプの回数が上限を超えました」エラーにつきましては手元の環境では再現しませんでしたので、現在頂いている情報では原因はちょっと追っかけられません。 --  &new{2005-02-02 (水) 22:29:51};
--すみません。それが原因だと思っていたのですが、違っていたみたいです。なにが原因か再現できなくてなんともいえないのですが、実はどのページにとばそうとしても「ジャンプの回数が上限を超えました」エラーがでてしまっていました。理由がわからないのでとりあえずほうっておいてください。わかったらまたきます。 -- [[grapse]] &new{2005-02-03 (木) 16:27:33};
-「別名 リンク」で検索するとここに辿り着くのですが、これで[[FSWikiのKeyword>FreeStyleWiki:Help#p14]]相当のことって出来ますか? --  &new{2005-03-25 (金) 21:56:09};
-- こんにちは :) その機能に(かなり近い意味で)相当するのはもっか開発・検討中の [[AutoAlias>dev:BugTrack2/2]] のようですね。 -- [[henoheno]] &new{2005-03-25 (金) 22:16:33};
--AutoLinkが有効であれば同じ目的で使用できますが、擬似的な実装なので別名ページの実体を作成する必要があります。また、外部URLへの自動リンク(ジャンプ)はできないようにしてあります。AutoAliasに対する利点は導入が非常に手軽であることです。 -- [[コチ]] &new{2005-03-26 (土) 00:59:35};
--お答え頂きありがとうございました。う~ん、別名のページを作る必要があるんですね。了解しました。 --  &new{2005-03-26 (土) 06:23:37};
-alias.inc.php使わせていただいています。ありがとうございます。&br;使っていてひとつできたらいいなと思うことがありますので書かせて頂きます。&br;このプラグインの現在の仕様だとすべてのページにひとつずつ別名ページを作成すると一覧表示から削除するのが非常に手間です。&br;一覧には自動的に表示されないようにする、もしくはできればですが、#alias(別名,元ページ)見たいなかたちでひとつのページでいくつも別ページ名の設定ができればなんて考えているのですが…。難しいですか? -- [[masa]] &new{2005-04-20 (水) 22:21:23};
--「自動的に一覧に表示されないように」というご提案についてですが、pukiwiki.ini.php(の$non_list)を書き換えるような動作はリスクが高いので、申し訳ありませんが実装したくありません。config.inc.phpを使用されれば多少設定修正の負荷が下がるのでは無いかと思います。&br;「ひとつのページでいくつも別ページ名の設定ができれば~」については意味がすこし解りかねますが、このプラグインの性質上、”別名ページの実体を作成してそこにこのプラグインを記述する”というスタイルからは逃れることができません。ただ、それらを自動で行うツールであれば提供できるかも知れませんので検討することにします。 -- [[コチ]] &new{2005-04-21 (木) 13:06:48};
-意味不明瞭でした。申し訳ありません&worried;&br;たとえばAというページにBとCという別ページ名を付けたいときにAのページの中でそれを指定できれば・・・ってプラグインまったく違ってきますね&worried;それができれば一覧に表示されることも無くなると思いまして。&br;ご検討ください。 -- [[masa]] &new{2005-04-22 (金) 15:15:42};
--・・・それであればAutoAliasの導入を検討されたほうが良いかもしれません。 -- [[コチ]] &new{2005-04-23 (土) 00:03:42};
- 配布先はどちらですか? --  &new{2005-10-27 (木) 07:23:18};
-- 通常、上の「掲載先」のリンク先からダウンロードできますが、現在はサーバを一時停止中です。20時間以内に復旧の予定です。m(_ _)m -- [[コチ]] &new{2005-10-27 (木) 09:35:01};
- 転送先にアンカーを指定するとaliastraceが無反応なのですが、なんとかなりませんでしょうか。 --  &new{2005-12-07 (水) 09:37:55};
-- ご報告ありがとうございます。確認と修正にしばらく時間をください。 -- [[コチ]] &new{2005-12-07 (水) 09:53:31};
-- Ver.1.2でご指摘の不具合を修正しました。 --  &new{2005-12-10 (土) 01:03:15};
--- 迅速な対応ありがとうございます。早速更新します! --  &new{2005-12-10 (土) 06:09:49};
- ジャンプさせないオプションについてですが、URLで指定する方法以外に、プラグイン呼び出し時に#alias(ジャンプ先ページ名,noalias)のような感じで指定できれば便利だと思うのですが、いかがでしょうか? -- [[ユーザ]] &new{2006-03-11 (土) 19:37:28};
-- すみません、動作イメージがわかないのですが・・・。"PageA"というページに"PageB"と言うページへジャンプするように本プラグインが設置されている場合、例えばFrontPageからPageAへ張られたリンクをクリックするとPageBへジャンプするわけですが、「#alias(ジャンプ先ページ名,noalias)」というのはこの例でどのページに記述するのでしょうか? -- [[コチ]] &new{2006-03-16 (木) 13:15:04};
-- pageAです。が、ジャンプさせたくなければ、単にpageBへのリンクを書いておけばいいだけなので、無意味なオプションですね。失礼しました。 -- [[ユーザ]] &new{2006-03-17 (金) 12:38:58};
- ジャンプ元のページのrelated情報をジャンプ先に引き継ぐことは可能でしょうか?ジャンプによってリンクの輪が途切れてしまっているような感じがします。#relatedにページ名を指定できれば解決する問題のような気もしますが。 -- [[user]] &new{2006-03-21 (火) 00:52:46};

- aliastrace.inc.phpの $pagename がHTMLエスケープされていません。is_page()でページの存在チェックは行われていますので、たぶん大丈夫だとは思います(ページ名にタグを含められない)。ですが、念のためエスケープした方がよいかと思います。可能性は低いでしょうが、ページ名にタグを含められるように改造する方もいらっしゃるかもしれませんし・・・。 -- [[一応・・・]] &new{2007-04-30 (月) 02:55:54};
-- ご指摘ありがとうございます。お気づきの通り、そこはis_page()してるので敢えてサニタイズしていません(その必要がありません)。改造した環境での使用については、要望があれば考慮するにやぶさかではありませんが、コードの冗長性とトレードオフになる場合はその限りではありません。というわけで、申し訳ありませんが現時点では修正しない方針とさせて頂きます。m(_ _)m -- [[コチ]] &new{2007-04-30 (月) 04:09:28};

- 公開先を変更しました -- [[コチ]] &new{2008-03-22 (土) 07:43:17};

- 要望はこちらにとのことなのですが、管理人だけが編集できるように:aliasというページを作って、そこに別名を記入して動作することはできないでしょうか?
 :aliasというページに新規作成
 -[[鈴木一郎>イチロー]]
 -[[鈴木一郎>イッチロゥー]]
とした場合、「イチロー」と「イッチロゥー」に自動でリンクが作成され、どちらも鈴木一郎に飛ぶといった感じです。これならわざわざ新規ページを作成せずに一覧に載せたくない場合nonlistに加えずに済みますし、編集制限をかければ荒らしにも合わないと思います。&br;
それと、例えばエイリアスを設定したURLがindex.php?bbbとし、エイリアス先のURLがindex.php?aaaの場合、エイリアス先URLに飛んでもindex.php?aaaにならずにindex.php?bbbと、飛んだにもかかわらずURLは変わらないので、飛んだ先のURLになるとうれしいです。 --  &new{2009-02-26 (木) 02:17:35};
-- ご提案の仕組みはこのプラグインとは根本的に違ってきますので難しいです(というかプラグインでは実現困難です)。AutoAliasの導入をご検討ください。 -- [[コチ]] &new{2009-02-26 (木) 05:40:39};
-- プラグインでは無理でしたか。AutoAliasは導入方法が記載されていなかったので私の知識では導入は無理でしたのでプラグインでなんとかと考えていました。正式に使えるようになるまで待とうと思います。 --  &new{2009-02-26 (木) 21:17:18};
-- 1.4.7(1.4.7_notb) へのAutoAlias 導入方法なら、[[質問箱4/436]] をどうぞ --  &new{2009-03-07 (土) 01:48:21};
- いくつかのリンクを最新のものに修正 --  &new{2009-05-05 (火) 22:58:29};
- スキンなどで Twitter ボタン(https&#x3a;//twitter.com/about/resources/buttons)をページに配置した場合、alias プラグインの飛び先のページにはボタンが正常に配置されないようです。ボタンではなくツイートもしくは Tweet という文字列が表示されてしまいます。 -- [[トゥイー]] &new{2012-01-03 (火) 14:09:53};
- Twitter ボタンが化けてしまう問題のとりあえずの解決法は alias プラグインの飛び先のページで Twitter ボタンが表示されないよう <?php if (!$vars['alias']) { ?> で表示を除外することかなと…。ちゃんと表示される方法を知っている方が居れば情報欲しいです。 -- [[トゥイー]] &new{2012-01-03 (火) 14:13:49};
- ずっと使用させていただいていたのですが、PHP8.0では正常に動作しないようです。どなたか対応された方はいらっしゃいますでしょうか? 配布先サイトも消滅してしまっているようなので、以下のサイトにソースを転載させていただきました。 //arda.saloon.jp/blog/2022/04/aliastraceincphp-php80.html (URL直書きもしくはURLへのリダイレクトだと正常に書き込めないようなのでhttpsの文字を削りました) --  &new{2022-04-10 (日) 10:52:00};
--alias.inc.php の冒頭の定数定義を下記のように変えてみてください。定数「URL_MAX_BYTES」「JUMP_MAX」をそれぞれ「'」で囲みます。 --  &new{2022-04-10 (日) 20:04:00};
 //ジャンプ先URL文字列の最大長指定
 define('URL_MAX_BYTES',1024);
 
 //ジャンプ回数制限
 define('JUMP_MAX',2);
--ちなみに、PukiWiki1.5.2以上なら本体に[[ページリダイレクト機能>PukiWiki/PageRedirection]]があります。設定しなおすのは大変かもしれませんが…。 --  &new{2022-04-10 (日) 20:12:30};

---対応できました! ありがとうございます。一般ユーザーも参照・編集できるようにしたかったのでPukiwikiのリダイレクト機能はあまり使いたくなかったんですよね。転載したソースは私のサイトにそのまま残しておく予定ですが、このページの記述も修正した方が良いでしょうか? --  &new{2022-04-10 (日) 20:45:30};
//#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.097 sec.

OSDN