トップ «前の日(11-11) 最新 次の日(11-13)» 追記

おいぬま日報(不定期)

カテゴリ | 技術情報まとめWiki | 検索エンジンから来た人向け | RSS

2002年
11月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30



2004-11-12

@ [fswiki] .html形式のURL(3)

というわけで3.5.7 dev1をベースにやってみました。まずlib/Wiki/HTMLParser.pmを修正します。

--- HTMLParser.pm.orig	2004-10-23 10:54:09.000000000 +0900
+++ HTMLParser.pm	2004-11-12 01:49:55.000000000 +0900
@@ -421,11 +421,10 @@
 		$name = $page;
 	}
 	if($self->{wiki}->page_exists($page)){
-		return "<a href=\"".$self->{wiki}->config('script_name')."?page=".&Util::url_encode($page)."\" class=\"wikipage\">".
-		       &Util::escapeHTML($name)."</a>";
+		return "<a href=\"".&Util::url_encode($page).".html\" class=\"wikipage\">".&Util::escapeHTML($name)."</a>";
 	} else {
 		return "<span class=\"nopage\">".&Util::escapeHTML($name)."</span>".
-		       "<a href=\"".$self->{wiki}->config('script_name')."?page=".&Util::url_encode($page)."\">?</a>";
+		       "<a href=\"".&Util::url_encode($page).".html\">?</a>"
 	}
 }

これで、Wikiページへのリンクは.html形式になりますが、これだけだと右上のメニューの"トップ"や"ヘルプ"は直らないので、不満な人はplugin/core/Install.pmも修正しましょう。

--- Install.pm.orig	2004-10-23 10:54:09.000000000 +0900
+++ Install.pm	2004-11-12 02:08:45.000000000 +0900
@@ -10,7 +10,7 @@
 	my $wiki  = shift;
 	my $login = $wiki->get_login_info();
 	
-	$wiki->add_menu("トップ",$wiki->config('script_name')."?page=".&Util::url_encode($wiki->config("frontpage")),999);
+	$wiki->add_menu("トップ",&Util::url_encode($wiki->config("frontpage")).".html",999);
 	
 	if($wiki->config('accept_edit')!=0 || defined($login)){
 		$wiki->add_menu("新規",$wiki->config('script_name')."?action=NEW",998);
@@ -19,7 +19,7 @@
 	$wiki->add_menu("編集"  ,"",997);
 	$wiki->add_menu("差分"  ,"",996);
 	$wiki->add_menu("一覧"  ,$wiki->config('script_name')."?action=LIST",995);
-	$wiki->add_menu("ヘルプ",$wiki->config('script_name')."?page=Help",100);
+	$wiki->add_menu("ヘルプ","Help.html",100);
 	
 	$wiki->add_handler("","plugin::core::ShowPage");
 	$wiki->add_handler("NEW","plugin::core::NewPage");

あとはApacheのmod_rewriteを使って、httpd.confなりに下記のようなURL書き換えの設定を追加します。FSWikiのURLが http://localhost/cgi-bin/wiki/wiki.cgi で、実際のCGIスクリプトが/usr/lib/cgi-bin/wiki/wiki.cgi だとすると...

RewriteEngine on
RewriteRule ^/cgi-bin/wiki/(.+)\.html$ /usr/lib/cgi-bin/wiki/wiki.cgi?page=$1

となります。

とここまでやって気付いたこと。 wiki.cgi?page=ページ名 でアンカを作ってる箇所(プラグイン含む)って結構たくさんあるんです(^^; *1 全部は面倒見切れないのでここまでにしますが、tDiaryみたく、アンカのURLを生成するメソッドをWikiクラスに用意した方がいいかもしれませんね(ボソ)。みなさんわざわざ↓みたいなことしているので。

$wiki->config('script_name')."?page=".&Util::url_encode($page)

*1 "?page="で検索すると15ヶ所ほど。

@ そんなわけで

上記の.html形式のURLはWikiをアクセス解析の対象にしているような人にとっては有効なのではないかと思います。Wikiの各ページが静的なHTMLのように見えるので、どのページが人気あるかとかわかるので。あと、静的なHTMLページの方がGoogleのPageRankが高いとかいうも。。。

@ [fswiki] .html形式のURL(4)

覚え書きで.html形式のURLを試してるんです。で、ふとログを見ると Help/FSWiki などページ名にスラッシュを含んだものが 404 Not found になってました*1

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 2

のようにして mod_rewrite のログを見ても、どうもRewriteしている気配がない。

"mod_rewrite %2F"でぐぐってみると、%2Fの罠というのがヒット。曰く

というか、Apache 一般の動作として、'%2F' がURIに含まれていても '%2F' を '/' へは decode せず、なおかつ、たとえ'%2F'という文字列を含むファイルあるいはディレクトリがあったとしても 404 Not Found を返す。

だそうな。なるほど〜、今までは QUERY_STRING にページ名つけてたから関係なかったのですね。

というわけで、2時間程はまりましたが httpd.conf に下記を追加して対処。ふぃ〜。

AllowEncodedSlashes On

*1 URL書き換えを行わなければ当然問題なし

@ [fswiki] .html形式のURL(5)

あともう1つ。.html形式にしてtodayslinkプラグインを使うと、wiki.cgiへのアクセスではないとみなされるので

http://kazz.homeunix.org/cgi-bin/wiki/hoge.html

なんていうのも出力されてしまいます。ちょっとわずらわしいので、WikiページからのRefererは出力しないようにplugin/info/TodaysLink.pmをちょ〜手抜きで修正しました。

--- TodaysLink.pm.orig  2004-11-12 19:12:35.000000000 +0900
+++ TodaysLink.pm       2004-11-12 02:54:34.000000000 +0900
@@ -90,7 +90,8 @@
                        /^http:\/\/10\./ ||
                        /^http:\/\/192\.168\./ ||
                        /^http:\/\/172\.((1[6-9])|(2\d)|(3[01]))\./ ||
-                       /^http:\/\/127\.0\.0\./  );
+                       /^http:\/\/127\.0\.0\./ ||
+                       /^http:\/\/kazz\.homeunix\.org\/cgi-bin\/wiki\//  );
 
                my $ref=$_;
                my $refcount=$count->{$ref};

2005-11-12

@ [emacs] cperl-modeの設定

とりあえずこんだけ。cperl-electric-parensとかは逆にうっとおしいのではずしてます。

(autoload 'cperl-mode
  "cperl-mode"
  "alternate mode for editing Perl programs" t)
(setq cperl-indent-level 4
      cperl-continued-statement-offset 4
      cperl-close-paren-offset -4
      cperl-comment-column 40
      cperl-highlight-variables-indiscriminately t
      cperl-indent-parens-as-block t
      cperl-label-offset -4
      cperl-tab-always-indent nil
      cperl-font-lock t)
(add-hook 'cperl-mode-hook
          '(lambda ()
             (progn
               (setq indent-tabs-mode nil)
               (setq tab-width nil)
               )))
(setq auto-mode-alist
      (append (list (cons "\\.\\(pl\\|pm\\)$" 'cperl-mode))
              auto-mode-alist))
本日のツッコミ(全1件) [ツッコミを入れる]

# mazurkja [description fZOurBDyB3pC http://tinyurl.co.uk/foks]


Bookmark: あんてな | ぶっくまーく | 覚え書き | Project Amateras | ExcelPettyCashBook | FreeStyle Wiki

2002|10|11|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|11|12|
2008|01|02|03|04|05|06|07|08|10|11|
人気ブログランキング - おいぬま日報(不定期)