* Good crew it's cool :) http://ulisimikemaju.lefora.com/2012/03/05/litle-lolita-russian-gallery/ lolita zoo rape free  wow, another great film.  i love the little looks to camera so we can see those wonderful eyes of yours.  and the highlight this time is being able to see your gorgeous bum in that lovely thong in the mirror. thank you! x [#y4818804]
 
#author("2016-12-12T20:55:22+09:00","","")
* ページのリダイレクトをしたい [#i8417b16]

- ページ: [[BugTrack2]]
- 投稿者: [[Xsugmpcu]]
- 優先順位: ????
- 状態: ??????±
- カテゴリー: ?×????°??????
- 投稿日: 2012-04-23 (月) 08:41:32
- バージョン: 5
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体新機能
- 投稿日: 2016-11-10 (木) 01:46:01
- バージョン: 1.5.1
- リリース予定バージョン: 1.5.2

** メッセージ [#w64f28b1]
Good crew it's cool :) http://ulisimikemaju.lefora.com/2012/03/05/litle-lolita-russian-gallery/ lolita zoo rape free  wow, another great film.  i love the little looks to camera so we can see those wonderful eyes of yours.  and the highlight this time is being able to see your gorgeous bum in that lovely thong in the mirror. thank you! x
 
** メッセージ [#w125f446]
標準のrenameプラグインで複数ページのリネームをすることはできるが、旧ページのURLへアクセスされると、新規ページ作成が行われてしまう。

旧ページから新ページへのリダイレクト機能が欲しい。

自由なリダイレクト設定は脆弱性の発生要因にもなるため、管理者だけが設定できるようにする。

*** 例 [#v902bd49]

- BugTrack2/396 を BugTrack/2396 にリネームした後、 BugTrack2/396 にアクセスされた時に、BugTrack/2396 にリダイレクトしたい。



--------
- リダイレクトにも種類がありますよね。~
1) Wikipedia のようにページ単位で #redirect を設定できるようにする。~
2) pukiwiki.ini.php / :config/redirect などに書かれた正規表現に基づいてルーティングするような仕組みを作る。 -- [[bee]] &new{2016-11-10 (木) 03:38:03};
-- たぶん意図は 2) だと思うのですが、
A->B, B->C, C->A のようなルールを書いたときに連続で適用するのか、
%%ループしたらどうやって検出するのか%%、
など最終的に機能限定版 mod_rewrite を再実装することになってしまったりして…? -- [[bee]] &new{2016-11-10 (木) 03:46:42};
-- 1) もリダイレクトループの問題は考えなきゃいけないですね…。 -- [[bee]] &new{2016-11-10 (木) 04:23:28};
- 1a) rename プラグインを修正して~
 #freeze
 #redirect(NEW_PAGE_NAME)
のようなページを自動生成する機能を付ける、#redirect は freeze されている場合のみ実行するようにする、#redirect は /?cmd=read&page=PAGE_NAME の場合は発動させない、
という感じではどうか。 -- [[bee]] &new{2016-11-10 (木) 03:55:11};
-- リダイレクト先に /?cmd=read&page=PAGE_NAME 形式でリダイレクト元がリンクされると便利かも。 -- [[bee]] &new{2016-11-10 (木) 04:28:00};
- 関連:
[[official:自作プラグイン/alias.inc.php]] /
[[official:自作プラグイン/redirect.inc.php]] /
wiki.revulo.com/pukiwiki/patch/rewritemap /
xoops.hypweb.net/modules/pukiwiki/1519.html -- [[bee]] &new{2016-11-10 (木) 04:18:47};
- 頻繁に変更するところではないのと、正規表現を使いたくなるので、pukiwiki.ini.phpにルールを書こうと考えてました。ページ単位であればご提示の既存プラグインが使えますし。リダイレクトループ検出はしません -- [[umorigu]] &new{2016-11-10 (木) 08:50:53};
- 携帯対応も考えると alias.inc.php や redirect.inc.php は結構危ない感じだったりしますが、それ以前にページ数が倍になりますからね。検索が…。 -- [[bee]] &new{2016-11-14 (月) 02:04:55};
- ルーティングする仕組みを上手く設計すると [[BugTrack2/195]] も解決できるかも、ですね。 -- [[bee]] &new{2016-11-14 (月) 02:18:04};
- シンプルに実装してみました。[[BugTrack2/195]]など他の問題は残念ながら解決できません。別対応にしたいと思ってます [[commit:a021ead072]] -- [[umorigu]] &new{2016-11-14 (月) 05:05:17};
- ルールについてドキュメントに記載しました。[[official:PukiWiki/PageRedirection]] -- [[umorigu]] &new{2016-11-18 (金) 01:53:23};

- このサイトでは BugTrack2/xxx -> BugTrack/2xxx のリダイレクトを↓のように実現できます -- [[umorigu]] &new{2016-11-14 (月) 05:11:39};
 // Page redirect rules
 $page_redirect_rules = array(
 	//'#^RenamedOldProject($|(/(.+)$))#' => 'NewProject$1',
 	'#^BugTrack2/(\d\d\d)$#' => 'BugTrack/2$1',
 	'#^BugTrack2/(\d\d)$#' => 'BugTrack/20$1',
 	'#^BugTrack2/(\d)$#' => 'BugTrack/200$1',
 );
- preg_matchが常に3回走るのがいまいちなので$replaceに関数を指定できるようにしました。 [[commit:fd549e4343]] -- [[umorigu]] &new{2016-11-15 (火) 02:03:09};
 // Page redirect rules
 $page_redirect_rules = array(
 	//'#^FromProject($|(/(.+)$))#' => 'ToProject$1',
 	//'#^FromProject($|(/(.+)$))#' => function($matches) { return 'ToProject' . $matches[1]; },
 	'#^BugTrack2/(((\d+)($|/.+$))|(.+$))#' => function($matches) {
 		if (isset($matches[3]) && $matches[3]) {
 			$number = $matches[3];
 			if (strlen($number) === 3) {
 				$new_page = 'BugTrack/2' . $number . $matches[4];
 			} else if (strlen($number) === 2) {
 				$new_page = 'BugTrack/20' . $number . $matches[4];
 			} else if (strlen($number) === 1) {
 				$new_page = 'BugTrack/200' . $number . $matches[4];
 			} else {
 				$new_page = 'BugTrack/' . $number . $matches[4];
 			}
 		} else {
 			$new_page = 'BugTrack/' . $matches[5];
 		}
 		return $new_page;
 	},
 );
- 無名関数を利用するのは PHP 5.3+ な機能なので、ドキュメントないし pukiwiki.ini.php に注釈が欲しいですね。 -- [[bee]] &new{2016-11-16 (水) 00:36:47};
-- Todo: '#(.*)#' => function($matches) { /* mbstring でゴニョゴニョ */ return $new_page;} をあとで試してドキュメントに書く。 -- [[bee]] &new{2016-11-16 (水) 00:44:09};
-- 今の実装だとmatchしたら必ずredirectしてしまうので、これは動きません。replace結果を元のページと比較するべきでしたね -- [[umorigu]] &new{2016-11-18 (金) 01:13:59};
-- 変換後にもページ名が変わらなかったらリダイレクトしないようにしました [[commit:22b6214f55]] -- [[umorigu]] &new{2016-11-18 (金) 01:34:26};
- ありがとうございます!(時間がなくてまだ動作テストできてない…orz) -- [[bee]] &new{2016-11-19 (土) 19:00:14};
- devサイトをアップデートした([[開発日記/2016-12-07]])という事で、巡回してみて疑問が1つ。recentプラグインはリダイレクト対応させないのでしょうか?ページ内からの関連リンク先一覧$related に登録させないためだかでmake_pagelink() を通さず直接生成しているのと、リダイレクトを確認してないので表示中のページならUIを変える機能([[BugTrack/676]])がBugTrack2/xxx -> BugTrack/2xxx で動いてないです。(ん?BugTrack/676 って事は、popular プラグインも自前生成か…) --  &new{2016-12-07 (水) 22:02:43};
-- (1)リダイレクト設定は頻繁には変えない想定であること。(2)recentプラグインのソースであるcache/recent.datはいくつかのページを更新すれば内容が入れ替わって旧ページの情報はなくなること。からリダイレクトへの特別な対応は不要だと思ってます。cache/recent.datを手動で削除してしまえば再生成されるのですけど、挙動を見るために今はあえて残しています。そんなに困らないと思ってます -- [[umorigu]] &new{2016-12-08 (木) 05:56:33};
-- popularも同じじゃないかな... 確かに、新しい機能に対応していない各pluginが、「意図してそうしているのか」「対応漏れなのか」は個別に確認が必要ですね -- [[umorigu]] &new{2016-12-08 (木) 06:02:12};
-- recentは[[BugTrack/676]]のためにmake_pagelink()を使わずに自前対応してるのかもしれません -- [[umorigu]] &new{2016-12-08 (木) 06:07:43};
-- [[commit:4683d446b562736dce7a199dc9dd168f455fe168]] で分岐させたのだから、make_pagelink() に対して「アンカー無しで表示中ページが飛び先の場合」だけBugTrack/676 と同様な仕様変更をするかどうかにかかわらず、単純なページリンク生成する側を
 $items .= ' <li>' . make_pagelink($page) . '</li>' . "\n";
のように置き換えずに自前生成を踏襲したのは何でだったかな~が「$related に登録」ウンヌンなので、理由がハズレならお気になさらないでください。(ls2 プラグインのように、id をa タグに割り振ってるわけでもないのに、う~ん…) -- 2016-12-07 (水) 22:02:43 コメ主 &new{2016-12-08 (木) 23:02:02};
-- この処理に置き換えるのでもよさそうですね -- [[umorigu]] &new{2016-12-10 (土) 18:55:04};
-- 見ましたけどrecent.inc.phpの処理とmake_pagelink()内での処理がかなり重複しているので、そのまま置き換えると無駄な処理が多くなってしまうようです -- [[umorigu]] &new{2016-12-10 (土) 19:08:59};
-- そういう事でしたか。わざわざ調査までしていただき、ありがとうございました。 -- 2016-12-07 (水) 22:02:43 コメ主 &new{2016-12-12 (月) 20:55:22};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.052 sec.

SourceForge