From: Rich Bowen
Date: Wed, 3 Sep 2014 16:16:41 +0000 (+0000)
Subject: Merges some corrections from trunk
X-Git-Tag: 2.4.11~309
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f5be3c50672c384cfc08ba466e7e388d129d9f12;p=apache
Merges some corrections from trunk
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1622292 13f79535-47bb-0310-9956-ffa450edef68
---
diff --git a/docs/manual/rewrite/advanced.xml b/docs/manual/rewrite/advanced.xml
index 99c986a858..f94421589c 100644
--- a/docs/manual/rewrite/advanced.xml
+++ b/docs/manual/rewrite/advanced.xml
@@ -49,7 +49,7 @@ configuration.
- URL-based sharding accross multiple backends
+ URL-based sharding across multiple backends
- Description:
@@ -196,165 +196,6 @@ featureful than anything you can cobble together using mod_rewrite.
-
-
- Document With Autorefresh
-
-
-
-
- - Description:
-
- -
-
Wouldn't it be nice, while creating a complex web page, if
- the web browser would automatically refresh the page every
- time we save a new version from within our editor?
- Impossible?
-
-
- - Solution:
-
- -
-
No! We just combine the MIME multipart feature, the
- web server NPH feature, and the URL manipulation power of
- mod_rewrite. First, we establish a new
- URL feature: Adding just :refresh
to any
- URL causes the 'page' to be refreshed every time it is
- updated on the filesystem.
-
-
-RewriteRule ^(/[uge]/[^/]+/?.*):refresh /internal/cgi/apache/nph-refresh?f=$1
-
-
- Now when we reference the URL
-
-
-/u/foo/bar/page.html:refresh
-
-
- this leads to the internal invocation of the URL
-
-
-/internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html
-
-
- The only missing part is the NPH-CGI script. Although
- one would usually say "left as an exercise to the reader"
- ;-) I will provide this, too.
-
-
-#!/sw/bin/perl
-##
-## nph-refresh -- NPH/CGI script for auto refreshing pages
-## Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
-##
-$| = 1;
-
-# split the QUERY_STRING variable
-@pairs = split( /&/, $ENV{'QUERY_STRING'} );
-foreach $pair (@pairs) {
- ( $name, $value ) = split( /=/, $pair );
- $name =~ tr/A-Z/a-z/;
- $name = 'QS_' . $name;
- $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- eval "\$$name = \"$value\"";
-}
-$QS_s = 1 if ( $QS_s eq '' );
-$QS_n = 3600 if ( $QS_n eq '' );
-if ( $QS_f eq '' ) {
- print "HTTP/1.0 200 OK\n";
- print "Content-type: text/html\n\n";
- print "<b>ERROR</b>: No file given\n";
- exit(0);
-}
-if ( !-f $QS_f ) {
- print "HTTP/1.0 200 OK\n";
- print "Content-type: text/html\n\n";
- print "<b>ERROR</b>: File $QS_f not found\n";
- exit(0);
-}
-
-sub print_http_headers_multipart_begin {
- print "HTTP/1.0 200 OK\n";
- $bound = "ThisRandomString12345";
- print "Content-type: multipart/x-mixed-replace;boundary=$bound\n";
- &print_http_headers_multipart_next;
-}
-
-sub print_http_headers_multipart_next {
- print "\n--$bound\n";
-}
-
-sub print_http_headers_multipart_end {
- print "\n--$bound--\n";
-}
-
-sub displayhtml {
- local ($buffer) = @_;
- $len = length($buffer);
- print "Content-type: text/html\n";
- print "Content-length: $len\n\n";
- print $buffer;
-}
-
-sub readfile {
- local ($file) = @_;
- local ( *FP, $size, $buffer, $bytes );
- ( $x, $x, $x, $x, $x, $x, $x, $size ) = stat($file);
- $size = sprintf( "%d", $size );
- open( FP, "<$file" );
- $bytes = sysread( FP, $buffer, $size );
- close(FP);
- return $buffer;
-}
-
-$buffer = &readfile($QS_f);
-&print_http_headers_multipart_begin;
-&displayhtml($buffer);
-
-sub mystat {
- local ($file) = $_[0];
- local ($time);
-
- ( $x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime ) = stat($file);
- return $mtime;
-}
-
-$mtimeL = &mystat($QS_f);
-$mtime = $mtime;
-for ( $n = 0 ; $n & lt ; $QS_n ; $n++ ) {
- while (1) {
- $mtime = &mystat($QS_f);
- if ( $mtime ne $mtimeL ) {
- $mtimeL = $mtime;
- sleep(2);
- $buffer = &readfile($QS_f);
- &print_http_headers_multipart_next;
- &displayhtml($buffer);
- sleep(5);
- $mtimeL = &mystat($QS_f);
- last;
- }
- sleep($QS_s);
- }
-}
-
-&print_http_headers_multipart_end;
-
-exit(0);
-
-##EOF##
-
-
-
-
-
-