- From: Mercurial notifier <nobody@w3.org>
- Date: Thu, 10 Mar 2011 20:48:18 +0000
- To: markup-validator updates <www-validator-cvs@w3.org>
changeset: 3213:c2a8c311f2b4
tag: tip
user: Ville Skyttä <ville.skytta@iki.fi>
date: Thu Mar 10 22:48:10 2011 +0200
files: httpd/cgi-bin/check httpd/conf/httpd.conf
description:
Remove internal support for /check/referer, do it in httpd.conf instead.
/check/referer has been deprecated in favor of /check?uri=referer
since 2003 (validator 0.6.5 beta 1).
diff -r 6595643c8f61 -r c2a8c311f2b4 httpd/cgi-bin/check
--- a/httpd/cgi-bin/check Thu Mar 10 22:43:57 2011 +0200
+++ b/httpd/cgi-bin/check Thu Mar 10 22:48:10 2011 +0200
@@ -2795,37 +2795,6 @@
$q->param($param, TRUE) unless $q->param($param);
}
- my $path_info = $q->path_info();
-
- # IIS reportedly does not provide the $path_info we expect - hack around it.
- $path_info =~ s|(.*)/check\.pl(.*)$|$2|
- if ($ENV{SERVER_SOFTWARE} and
- $ENV{SERVER_SOFTWARE} =~ /Microsoft-IIS/);
-
- # apparently, with mod_perl2, $path_info is empty even if it should be
- # filled. working around that
- if (!$path_info && $File->{Env}->{'Self URI'} =~ /check\/referr?er$/) {
- $path_info = '/referer';
- $File->{Env}->{'Self URI'} =~ s/\/referr?er$//;
- }
-
- # Futz the URL so "/referer" works.
- if ($path_info) {
- if ($path_info =~ m|^/referr?er$|) {
- if ($q->referer) {
- $q->param('uri', $q->referer);
- print redirect &self_url_q($q, $File);
- }
- else {
- print redirect $File->{Env}->{'Self URI'} . '?uri=referer';
- }
- }
- else {
- print redirect &self_url_q($q, $File);
- }
- exit;
- }
-
$File->{Env}->{'Home Page'} =
URI->new_abs(".", $File->{Env}->{'Self URI'});
@@ -2851,9 +2820,7 @@
}
else {
- # Redirected from /check/referer to /check?uri=referer because
- # the browser didn't send a Referer header, or the request was
- # for /check?uri=referer but no Referer header was found.
+ # No Referer header was found.
$File->{'Error Flagged'} = TRUE;
&get_error_template($File)->param(fatal_referer_error => TRUE);
}
diff -r 6595643c8f61 -r c2a8c311f2b4 httpd/conf/httpd.conf
--- a/httpd/conf/httpd.conf Thu Mar 10 22:43:57 2011 +0200
+++ b/httpd/conf/httpd.conf Thu Mar 10 22:48:10 2011 +0200
@@ -11,10 +11,16 @@
# To run the validator without mod_perl 2.x even if it is loaded, comment
# out the "IfDefine MODPERL2" sections below.
-# First, tell httpd that check and sendfeedback.pl are CGI scripts.
+# Legacy: support /check/referer by redirecting to check?uri=referer
-AliasMatch ^/+w3c-validator/+check(/+referer)?$ \
- /usr/local/validator/cgi-bin/check
+<IfModule mod_rewrite.c>
+RewriteEngine On
+RewriteRule ^(/+w3c-validator/+check)/+referr?er\b $1?uri=referer [R=301,QSA,L]
+</IfModule>
+
+# Tell httpd that check and sendfeedback.pl are CGI scripts.
+
+Alias /w3c-validator/check /usr/local/validator/cgi-bin/check
AliasMatch ^/+w3c-validator/+feedback(\.html)?$ \
/usr/local/validator/cgi-bin/sendfeedback.pl
@@ -23,7 +29,7 @@
PerlSwitches -T
</IfDefine>
-<LocationMatch "^/+w3c-validator/+(check(/+referer)?|feedback(\.html)?)$">
+<LocationMatch "^/+w3c-validator/+(check|feedback(\.html)?)$">
Options +ExecCGI
SetHandler cgi-script
<IfDefine MODPERL2>
@@ -58,7 +64,6 @@
<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
- RewriteEngine On
RewriteBase /w3c-validator/
RewriteRule fragment-upload(.html)? detailed.html#validate-by-input [R,L,NE]
RewriteRule file-upload(.html)? detailed.html#validate-by-upload [R,L,NE]
Received on Thursday, 10 March 2011 20:48:21 UTC