Bug#671171: apache2.2: mod_speling offers only permanent redirects
Package: apache2.2-bin
Version: 2.2.16-6+squeeze4zynet1
Severity: wishlist
File: apache2.2
mod_speling offers only permanent redirects, whilst this saves on CPU it
means that you are potentially storing issues for renaming content of a
web site in future as browsers will cache this indefinitely.
I propose a patch that adds "SpellingRedirectTemporary"
So that adding "SpellingRedirectTemporary On" to the configuation causes
Apache to issue 302 redirects instead of 301, which are pre-expired
causing clients to always retry.
-- System Information:
Debian Release: 6.0.4
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-25-hvmflexiant (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages apache2.2-bin depends on:
ii libapr1 1.4.2-6+squeeze3 The Apache Portable Runtime Librar
ii libaprutil1 1.3.9+dfsg-5 The Apache Portable Runtime Utilit
ii libaprutil1-dbd-sqlite 1.3.9+dfsg-5 The Apache Portable Runtime Utilit
ii libaprutil1-ldap 1.3.9+dfsg-5 The Apache Portable Runtime Utilit
ii libc6 2.11.3-2 Embedded GNU C Library: Shared lib
ii libcap2 1:2.19-3 support for getting/setting POSIX.
ii libldap-2.4-2 2.4.23-7.2 OpenLDAP libraries
ii libpcre3 8.02-1.1 Perl 5 Compatible Regular Expressi
ii libssl0.9.8 0.9.8o-4squeeze12 SSL shared libraries
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
apache2.2-bin recommends no packages.
apache2.2-bin suggests no packages.
-- no debconf information
--- orig/httpd-2.2.16/modules/mappers/mod_speling.c 2008-04-17 15:10:52.000000000 +0100
+++ apache2-2.2.16/modules/mappers/mod_speling.c 2012-05-02 09:50:15.000000000 +0100
@@ -60,6 +60,7 @@
typedef struct {
int enabled;
int case_only;
+ int redirect_temporary;
} spconfig;
/*
@@ -77,6 +78,7 @@
cfg->enabled = 0;
cfg->case_only = 0;
+ cfg->redirect_temporary = 0;
return cfg;
}
@@ -109,6 +111,9 @@
AP_INIT_FLAG("CheckCaseOnly", ap_set_flag_slot,
(void*)APR_OFFSETOF(spconfig, case_only), OR_OPTIONS,
"whether or not to fix only miscapitalized requests"),
+ AP_INIT_FLAG("SpellingRedirectTemporary", ap_set_flag_slot,
+ (void*)APR_OFFSETOF(spconfig, redirect_temporary), OR_OPTIONS,
+ "whether to issue a 301 or a 302 on spelling errors"),
{ NULL }
};
@@ -399,6 +404,8 @@
: "Fixed spelling: %s to %s",
r->uri, nuri, ref);
+ if (cfg->redirect_temporary == 1) return HTTP_MOVED_TEMPORARILY;
+
return HTTP_MOVED_PERMANENTLY;
}
/*
Reply to: