]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Posting my change to the 404 module
authorhttp://cdombroski.myopenid.com/ <http://cdombroski.myopenid.com/@web>
Wed, 3 Mar 2010 00:14:47 +0000 (00:14 +0000)
committerJoey Hess <joey@finch.kitenet.net>
Wed, 3 Mar 2010 00:14:47 +0000 (00:14 +0000)
doc/bugs/404_plugin_and_lighttpd.mdwn

index 29ca107dc55329f87006c3739cf6ff8f1e7f656f..ffbad8adda2531d1785d918164898a76cd09306c 100644 (file)
@@ -11,3 +11,25 @@ This is with lighttpd 1.4.19 on Debian.
 > I originally wrote the plugin for Apache; [[weakish]] contributed the
 > lighttpd docs and might know more about how to make it work there.
 > --[[smcv]]
+
+>> As I said, I got it working for me, but somebody who knows perl should probably look at it with the aim of making it work for everyone.
+>> I considered having lighttpd construct a proper url for the 404 redirect itself, but I don't know if it can do something like that or not.
+>> For what it's worth, here's the change I made to the module:
+
+    sub cgi ($) {
+            my $cgi=shift;
+            if ($ENV{REQUEST_URI} !~ /ikiwiki\.cgi/) {
+                    my $page = cgi_page_from_404(
+                            Encode::decode_utf8($ENV{SERVER_NAME} . $ENV{REQUEST_URI}),
+                            $config{url}, $config{usedirs});
+                    IkiWiki::Plugin::goto::cgi_goto($cgi, $page);
+            }
+    
+    #       if (exists $ENV{REDIRECT_STATUS} &&
+    #           $ENV{REDIRECT_STATUS} eq '404') {
+    #               my $page = cgi_page_from_404(
+    #                       Encode::decode_utf8($ENV{REDIRECT_URL}),
+    #                       $config{url}, $config{usedirs});
+    #               IkiWiki::Plugin::goto::cgi_goto($cgi, $page);
+    #       }
+    }