[Hiki-dev] ページ名.htmlで閲覧してもらう方法

アーカイブの一覧に戻る

zunda zunda****@24i*****
2003年 8月 16日 (土) 00:44:21 JST


初めまして、zundaです。

必要があってHikiを導入させていただきました。できればGoogle先生にも拾って
もらいたいと思ってちょっとだけ改造しましたので報告しておきます。

* plugin/に下記を導入する
  gsubすることによって、「/」の入っているページ名をApacheに期待通りあつ
	かってもらえるようになります。かずひこさんによると、apache 2.0.46から
	AllowEncodedSlashesというディレクティブが用意されて、このgsubは必要な
	いようです。
	http://httpd.apache.org/docs-2.1/ja/mod/core.html#allowencodedslashes

--- ここから
#===== hiki_anchor
def hiki_url( page )
	unless page == 'FrontPage' then
  	"#{page.gsub(/%2F/i,'%252F')}.html"
	else
  	'.'
	end
end

def hiki_anchor( page, display_text )
	make_anchor( hiki_url( page ), display_text )
end
--- ここまで

* hiki/command.rbを以下のように変更

Index: hiki/command.rb
===================================================================
RCS file: /cvsroot/hiki/hiki/hiki/command.rb,v
retrieving revision 1.4.2.34
diff -u -r1.4.2.34 command.rb
--- hiki/command.rb	12 Aug 2003 06:34:23 -0000	1.4.2.34
+++ hiki/command.rb	15 Aug 2003 15:28:45 -0000
@@ -335,7 +335,7 @@
         data[:link]      = page.escapeHTML
         generate_page(data)
       else
-        redirect(@cgi, "#{$cgi_name}?#{page.escape}")
+        redirect(@cgi, @plugin.hiki_url( page ).escape )
       end
     end
 
@@ -555,7 +555,7 @@
       end
 
       if redirect_mode and result
-          redirect(@cgi, "#{$cgi_name}?#{@p.escape}")
+          redirect(@cgi, @plugin.hiki_url( @p ).escape )
       end
     end
   end

* .htaccessに以下を追加

RewriteEngine on
RewriteRule ^(.+)\.html hiki.cgi?$1 [L]

これで、少なくとも手元では、期待通りの動き:
* ページ内のリンクは hoge.html になる
* ページの編集後に hoge.html にリダイレクトされる
* FrontPage.htmlは、…/というURLになる
をしてくれています。

以上、参考まで。



Hiki-dev メーリングリストの案内
アーカイブの一覧に戻る