# we don't care about multi-value
my %qp = map {
+ utf8::decode($_);
my ($k, $v) = split('=', uri_unescape($_), 2);
$v = '' unless defined $v;
$v =~ tr/+/ /;
($k, $v)
- } split(/[&;]/, $env->{QUERY_STRING});
+ } split(/[&;]+/, $env->{QUERY_STRING});
$ctx->{qp} = \%qp;
my $path_info = $env->{PATH_INFO};
my $ret = invalid_inbox($ctx, $inbox);
return $ret if $ret;
- $ctx->{mid} = $mid = uri_unescape($mid);
+ $ctx->{mid} = $mid;
if ($mid =~ /\A[a-f0-9]{40}\z/) {
# this is horiffically wasteful for legacy URLs:
if ($mid = mid2blob($ctx)) {